cmd dockerfile 没有执行_bash – Dockerfile CMD没有在容器启动时运行

所以我为一个项目编写了一个Dockerfile,我已经定义了一个CMD来启动容器以运行应用程序.

Dockerfile看起来像

# create our mount folders and volumes

ENV MOUNTED_VOLUME_DIR=sites

RUN mkdir /$MOUNTED_VOLUME_DIR

ENV PATH=$MOUNTED_VOLUME_DIR/sbin:$MOUNTED_VOLUME_DIR/common/bin:$PATH

RUN chown -Rf www-data:www-data /$MOUNTED_VOLUME_DIR

# Mount folders

VOLUME ["/$MOUNTED_VOLUME_DIR/"]

# Expose Ports

EXPOSE 443

# add our environment variables to the server

ADD ./env /env

# Add entry point script

ADD ./start.sh /usr/bin/startContainer

RUN chmod 755 /usr/bin/startContainer

# define entrypoint command

CMD ["/bin/bash","/usr/bin/startContainer"]

start.sh脚本,做一些git的东西,如克隆正确的repo,设置环境变量,以及启动主管.

启动脚本以此开头

#!/bin/bash

now=$(date +"%T")

echo "Container Start Time : $now" >> /tmp/start.txt

/usr/bin/supervisord -n -c /etc/supervisord.conf

我像这样开始我的新容器

docker run -d -p expoPort:contPort -t -i -v /$MOUNTED_VOLUME_DIR/$PROJECT:/$MOUNTED_VOLUME_DIR $CONTAINER_ID /bin/bash

当我登录到容器时,我看到主管还没有启动,也没有nginx或php5-fpm.带有从startContainer脚本设置的时间戳的/tmp/start.txt文件不存在,表明它从未在Dockerfile中运行过CMD.

任何有关修复此问题的提示都会很棒

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值