【发布时间】:2020-04-06 09:38:36
【问题描述】:
我希望能够使用 cron 在容器服务中运行一个简单的 bash 脚本。我通过docker-compose 使用Alpine Linux 和自定义Dockerfile 来生成基于php-fpm 的图像,我希望crond 也能在该图像上运行——除非我做不到。
在容器上执行 ps aux | grep cron 构建后,不会返回任何内容。
据我了解,Docker 容器中不存在通常的 Linux 启动过程 - 很好 - 那么 我 如何自动启动 crond?它在/etc/periodic/ 下的目录是自动创建的,所以我不明白为什么使用这些目录的适用进程也没有运行。
我尝试在docker-compose.yml 中创建一个专用的服务定义,这确实有效,但每小时运行的 shell 脚本需要访问在 不同 容器中运行的 php 二进制文件,所以这是这不是一个可行的解决方案。
如果我进入容器并运行 rc-service crond start 我会得到这个 - 但它永远不会“完成”:
/var/www/html # rc-service crond start
* WARNING: crond is already starting
#> docker --version
Docker version 19.03.8, build afacb8b7f0
#> docker-compose --version
docker-compose version 1.23.2, build 1110ad01
我需要一个可以放入我的Dockerfile 或docker-compose.yml 文件的解决方案。
Dockerd 在 Ubuntu Xenial FWIW 上运行。
【问题讨论】:
标签: docker-compose cron alpine