我正在使用,但如果我不使用,builder.AddPostgres().WithImage(...)
图像就会退出-it
docker run
文档中提到使用此图像的方式如下:
docker run \
-it \
-v postgresml_data:/var/lib/postgresql \
-p 5433:5432 \
-p 8000:8000 \
ghcr.io/postgresml/postgresml:2.7.12 \
sudo -u postgresml psql -d postgresml
这就是我添加 postgres 但没有开始工作的方式,该项目在仪表板中显示为已退出,在 docker 中,如果我按下播放按钮,它就会在不到 1 分钟的时间内启动并退出,这是保持容器运行的正确方法。
postgres = builder.AddPostgres("lcommerce-dependecy-postgres", port: 5432)
.WithImage("postgresml/postgresml")
.WithImageTag("2.9.3")
.WithImageRegistry("ghcr.io")
.WithHttpEndpoint(name: "endpoint-55432-5432",
port: 8000, targetPort: 8000, isProxied: true)
.WithContainerRuntimeArgs("-it", "--gpus=all");
我试图让容器保持运行.WithContainerRuntimeArgs("-it", "--gpus=all")
但一直退出。(默认情况下,net aspire 会添加 postgres 用户和密码,我已经测试了另一个图像pgvector/pgvector
并且它运行良好,但这个默认情况下不会退出)
更新
您可以使用
.WithContainerRuntimeArgs("-i", "--gpus=all")
.WithArgs("sudo", "-u", "postgresml", "psql", "-d", "postgresml")
但最好的是
(正如答案所暗示的):
.WithContainerRuntimeArgs("--gpus=all")
.WithArgs( "sleep","infinity")
正确的是
使用扩展和所需模块创建自定义图像,并将数据库服务器设置为主要持久进程,而不是使用解决方法(如答案所述)