Dockerfile
FROM centos:7
COPY docker-entrypoint.sh /data/
ENTRYPOINT ["/data/docker-entrypoint.sh"]
docker-entrypoint.sh
exec /usr/sbin/init && systemctl restart autofs %% python /data/myapp.py
I need to run /usr/sbin/init as the first command then run subsequent commands such as systemctl restart autofs and python myapp.py
I cant seem to get all working inside docker-entrypoint.sh because /usr/sbin/init does not return
if i change docker-entrypoint.sh to
/usr/sbin/init &
systemctl restart autofs && python /data/myapp.py
it fails with error in d-bus
what can i do so the container runs /usr/sbin/init, systemctl restart autofs and python /data/myapp.py in that order when "docker run" is executed?
Is there any other ways to run commands after /usr/sbin/init is executed?
i've tried putting systemctl as CMD in Dockerfile
FROM centos:7
ENTRYPOINT ["/usr/sbin/init"]
CMD ["systemctl restart autofs"]
but CMD is never executed
It's ok to have multiple processes, but to get the most benefit out of Docker, avoid one container being responsible for multiple aspects of your overall application. You can connect multiple containers using user-defined networks and shared volumes.
According to the documentation however, there must be only one ENTRYPOINT in a Dockerfile.
Declaring
ENTRYPOINT ["/usr/sbin/init"]
CMD ["systemctl"]
Will result in:
/usr/sbin/init systemctl
In other words, the ENTRYPOINT directive sets the executable which is used to execute the command given from the COMMAND directive.
The default ENTRYPOINT is /bin/sh -c so /bin/sh -c /data/docker-entrypoint.sh should work, if /data/docker-entrypoint.sh contains:
/usr/sbin/init
systemctl restart autofs
python /data/myapp.py
That means: You don't have to change the ENTRYPOINT
If you change the the ENTRYPOINT to /data/docker-entrypoint.sh than it should contain something like:
/usr/sbin/init
systemctl restart autofs
python /data/myapp.py
# run the command given as arguments from CMD
exec "$@"
reference
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With