我有一个dockerfile,它有一个entrypoint.sh文件,可以导出一些Postgres变量。然后我想启动"FROM pactfoundation/pact-broker“镜像中引用的父docker容器。查看github的Dockerfile github pact broker,它的末尾有CMD "config.ru“。所以我在我的Dockerfile中做了类似的事情:
FROM pactfoundation/pact-broker
COPY entrypoint.sh .
CMD ["config.ru"]当我执行docker run命令时:
docker run --rm -e POSTGRES_PORT=5433 -e POSTGRES_DBNAME=pactsd -e POSTGRES_URL=localhost -e POSTGRES_PASSWORD=1234 -e POSTGRES_USERNAME=postgres --name pact sonamsamdupkhangsar/pact:test -d我看到我的entrypoint.sh echo语句,容器已经死了。
setting pact broker database variables在entrypoint.sh文件中设置环境变量后,如何启动父容器?
我还尝试了以下几点:
FROM pactfoundation/pact-broker
ENV PACT_BROKER_DATABASE_NAME=${POSTGRES_DBNAME}
ENV PACT_BROKER_DATABASE_USERNAME=${POSTGRES_USERNAME}
ENV PACT_BROKER_DATABASE_PASSWORD=${POSTGRES_PASSWORD}
ENV PACT_BROKER_DATABASE_HOST=${POSTGRES_URL}
ENV PACT_BROKER_DATABASE_NAME=${POSTGRES_DBNAME}
ENV PACT_BROKER_DATABASE_PORT=$POSTGRES_PORT
RUN echo "PACT_BROKER_DATABASE_PORT: $PACT_BROKER_DATABASE_PORT"然而,当我运行我构建的docker镜像时,我仍然看不到变量被设置。我尝试了"${}“和"$”两种方法来设置env var。
发布于 2020-10-16 09:31:40
https://stackoverflow.com/questions/64381649
复制相似问题