每个人都知道Docker运行的主机不需要知道这个Docker容器内部的内容。因此我尝试在容器内添加对运行cronjobs
的支持。阅读了一些关于如何实现这一点的帖子,如下所示:
我正在尝试使用以下image实现我的“自定义”解决方案。
这就是我所做的:
/config/etc/cron.d
/usr/local/bin
此外,我在entrypoint.sh文件中添加了以下更改:
##################################################################
# Setup CronJobs
##################################################################
ln -sfn /var/www/html/oneview_symfony/bin/console /bin/sfconsole
# Disable this cronjob if the ENV variable is false
if [ "${ENABLE_API_CRON}" == "false" ]
then
# Disable the cronjob
sed -i '/0/s/^/#/g' /etc/cron.d/api_command-cron
fi
echo "API Cron Status: ${ENABLE_API_CRON}"
因为我正在使用Docker Compose(docker-compose.yml)堆栈,所以这就是我构建容器的方式:
$ docker-compose up --force-recreate --build --remove-orphans
构建过程很顺利,容器启动没有任何问题。
Successfully built 64ee76d6fbe4
Successfully tagged dockerlamp_webserver:latest
Creating dockerlamp_webserver_1 ...
Creating dockerlamp_webserver_1 ... done
Attaching to dockerlamp_webserver_1
webserver_1 | UID: 1000
webserver_1 | GID: 1000
webserver_1 | API Cron Status: true
webserver_1 | Enabling module rewrite.
webserver_1 | Enabling module expires.
webserver_1 | To activate the new configuration, you need to run:
webserver_1 | service apache2 restart
webserver_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.18.0.2. Set the 'ServerName' directive globally to suppress this message
当我尝试通过http://localhost
访问应用程序时,我得到一个空白页面,根本没有日志。问题不在于应用程序,因为相同的源对master
分支中没有这种新变化的图像起作用。
为什么应用程序在这种情况下停止工作?