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