我正在尝试基于Centos创建自己的图像。我不明白为什么当我在泊坞窗文件中使用CMD命令在启动时执行脚本时,无法启动我的映像(立即退出(0))。如果构建时没有CMD命令,那么我将连接到容器并执行“ sh /opt/jbossEAP/Mock/scripts/mock_start.sh”。我没问题我尝试使用入口点命令,但结果相同:(
FROM centos:7
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \
systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]
RUN yum update -y
RUN mkdir -p /opt/jbossEAP/Mock/scripts/
ADD ./scripts /opt/jbossEAP/Mock/scripts/
RUN chmod +x /opt/jbossEAP/Mock/scripts/mock_start.sh
### START SCRIPT ###
CMD sh /opt/jbossEAP/Mock/scripts/mock_start.sh
mock_start.sh
#!/bin/sh
############################################
echo "hello"
我怀疑您的CMD或ENTRYPOINT 做了正常工作,但是容器仅在输出hello
之后完成”
即使您已经用以下命令停止了docker的输出,也可以检查它的输出:docker logs <container-id>
请阅读https://stackoverflow.com/a/28214133/4486184,以获取有关其工作原理和避免方法的更多信息。
我的猜测可能是错误的,所以请始终添加到您的问题中:
docker ps -a
的输出docker logs <container-id>
输出的相关部分你是对的!