【发布时间】:2016-03-08 19:53:50
【问题描述】:
码头工人新手,请多多包涵。
我的 Dockerfile 包含一个入口点:
ENV MONGOD_START "mongod --fork --logpath /var/log/mongodb.log --logappend --smallfiles"
ENTRYPOINT ["/bin/sh", "-c", "$MONGOD_START"]
我有一个shell脚本通过python脚本向数据库添加一个条目,并启动服务器。
脚本startApp.sh
chmod +x /addAddress.py
python /addAddress.py $1
cd /myapp/webapp
grunt serve --force
现在,下面所有的 RUN 命令都不能成功执行这个脚本。
sudo docker run -it --privileged myApp -C /bin/bash && /myApp/webapp/startApp.sh loc
sudo docker run -it --privileged myApp /myApp/webapp/startApp.sh loc
容器的docker日志是
"about to fork child process, waiting until server is ready for connections. forked process: 7 child process started successfully, parent exiting "
此外,当我在 docker 中打开 bash 提示符并运行它时,startApp.sh 执行良好。
我无法弄清楚我做错了什么,请帮助。
【问题讨论】:
-
docker logs <container>的输出是什么?您是否尝试过仅使用 bash 而不是 startApp.sh 启动容器,然后从 bash 提示符执行 startApp.sh? -
sudo docker ps 不会将其显示为正在运行的容器。所以无法获取日志。当尝试启动 bash 并执行 startApp.sh 时,它运行良好并给了我预期的输出。
-
好的,没有任何进一步响应就退出的容器有以下日志-“即将分叉子进程,等待服务器准备好连接。分叉进程:7个子进程成功启动,父进程退出”
-
请不要在 cmets 中发布附加信息;通过edit 将此信息添加到问题中。
-
感谢您指出弗兰克,我已经更新了问题。
标签: bash shell docker dockerfile