-1

I am trying to create my own image based on Centos. I don't understand why when I use CMD command in my docker file to execute a script at startup, it's impossible to start my image (Exited (0) immediatly). If build without the CMD command and then I connect to the container and I execute "sh /opt/jbossEAP/Mock/scripts/mock_start.sh". I have no issue I have tryied to use entrypoint command but same result :(

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"
  • Your container starts, print hello, and exits immediately (the script ends). It's possible to start the image with different command.... – KamilCuk Jun 16 '20 at 07:16

2 Answers2

0

I suspect your CMD or ENTRYPOINT does work, but that the container simply finishes after outputting hello

You can check your docker's output even after it has been stopped with: docker logs <container-id>

Read https://stackoverflow.com/a/28214133/4486184 for more information on how it works and how to avoid that.

My guesses could be wrong, so please always add to your question:

  • How you start your docker image
  • docker ps -a's output
  • the relevant part of docker logs <container-id>'s output
Camusensei
  • 1,475
  • 12
  • 20
0

You're right!!!

I just add and now it's ok.

CMD sh /opt/jbossEAP/Mock/scripts/mock_start.sh && tail -f /dev/null

Thank you very much