我创建了一个Docker映像来运行基于官方nginx映像的crontab。
FROM nginx
RUN apt-get update && apt-get -y install cron
CMD ["cron", "-f"]
如果我不设置最后一行CMD ["cron", "-f"]
,crontab服务作为容器运行后就无法启动,但如果我设置了它,nginx就无法启动。
docker build -t some-content-nginx .
docker run --name some-nginx -d -p 8080:80 some-content-nginx
(Nginx isn't running)
如何同时启动这两项服务?
1条答案
按热度按时间vyswwuz21#
实现这一点的一种方法是将nginx映像的入口点文件封装到您自己的入口点中,该入口点的任务是启动
cron
服务,然后移交给标准的docker-nginx入口点。nginx
映像使用/docker-entrypoint.sh
入口点,因此我们只需要启动cron
并将命令传递给该脚本,使用的入口点如下:下面是一个简单的Dockerfile,它创建必要的入口点并覆盖基础映像中的入口点:
样品运行