【发布时间】:2017-02-24 08:39:09
【问题描述】:
我在我的 docker 镜像中添加了一个 wait-for-it 脚本,并在我的 docker-compose 中执行它。它适用于此设置:
在 docker-compose 中:
entrypoint: ./wait-for-it.sh mysql
等待脚本:
...checks
>&2 echo "MySQL is up - executing command"
exec ../../../entrypoint.sh npm start
我执行docker ps时的命令输出是:
COMMAND
"./wait-for-it.sh ..."
这很好用,但我不喜欢“设置”。
我希望 wait-for-it.sh 被执行,如果成功,我想转到我的 dockerfile 的 ENTRYPOINT + CMD。我不想从我的 wait-for-it.sh 中开始硬编码我的入口点
所以我改变了我的 wait-for-it.sh 脚本:
>&2 echo "MySQL is up - executing command"
exec "$@"
在我的 dockerfile 里面我有:
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 2368
CMD ["npm", "start"]
在执行等待它的脚本后,我的 docker-compose.yaml 需要如何以正确的方式执行此操作?
所以我想在执行docker ps时得到这个输出:
COMMAND
"/entrypoint.sh np..."
我在docker-compose.yaml 中尝试过类似的操作,但没有奏效:
entrypoint: ./wait-for-it.sh mysql /entrypoint.sh
command: ["npm", "start"]
【问题讨论】:
标签: docker docker-compose