Postgresql 使用带有postgres\u密码的dockerfile扩展postgres映像

Postgresql 使用带有postgres\u密码的dockerfile扩展postgres映像,postgresql,docker,dockerfile,Postgresql,Docker,Dockerfile,我正在使用参数postgres_PASSWORD=postgres扩展postgres映像,这样我的派生容器就已经有了使用docker build with dockerfile的默认密码 每当我从postgres生成的派生图像在容器上运行psql-U postgres,我都会得到: could not connect to server: No such file or directory Is the server running locally and accepting

我正在使用参数postgres_PASSWORD=postgres扩展postgres映像,这样我的派生容器就已经有了使用docker build with dockerfile的默认密码

每当我从postgres生成的派生图像在容器上运行
psql-U postgres
,我都会得到:

could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

在我的DockerFile上,我有:

ARG POSTGRES_PASSWORD=postgres
FROM postgres:alpine

RUN apk add --update nodejs
RUN apk add --update npm
RUN apk add --update erlang
RUN apk add --update elixir

CMD ["/bin/bash"]
然后我跑了

docker build-t myImage。
docker run——name sample-d-it myImage
docker exec-it示例bash

我想在
sample
container(从postgres扩展的图像)上运行
psql-U postgres

尝试将
ARG postgres\U PASSWORD=postgres
替换为
ENV postgres\U PASSWORD postgres


postgres docker image文档说明此参数是一个环境变量,因此这可能会有所帮助。

尝试用
ENV postgres\u PASSWORD=postgres
替换
ARG postgres\u PASSWORD postgres


postgres docker image文档说明此参数是一个环境变量,因此这可能会有所帮助。

这似乎是在寻找docker Compose之类的编排系统,而不是试图在docker文件中修复这些问题。运行shell而不是启动数据库的
CMD
设置可能是导致错误的直接原因。@DavidMaze无法使用elixir和postgres生成图像?我应该使用docker compose来连接postgres映像和elixir映像吗?是的,您绝对应该在单独的容器中运行数据库和应用程序。这似乎是在寻找docker compose这样的编排系统,而不是试图在docker文件中修复这些问题。运行shell而不是启动数据库的
CMD
设置可能是导致错误的直接原因。@DavidMaze无法使用elixir和postgres生成图像?我应该使用docker compose连接postgres图像和elixir图像吗?是的,您应该在单独的容器中运行数据库和应用程序。