在MySQL Docker容器上运行cron时出现问题



我正在设置一个cron,将数据库转储导入MySQL容器。然而,我正在尝试一个测试cron,以确保一切正常工作,但我没有得到任何输出。

我的Dockerfile设置为这样的

FROM mysql:8
RUN apt-get update
RUN apt-get -y install cron
COPY /crons/test-cron /etc/cron.d/test-cron
RUN chmod 0644 /etc/cron.d/test-cron
RUN crontab /etc/cron.d/test-cron
RUN touch /var/log/cron.log

MySQL镜像成功创建,我的测试cron可以在/etc/cron.d/test-cron中找到,但我从未得到我创建的cron.log文件的输出。

test-cron

* * * * * root echo 'Written by cron' >> /var/log/cron.log 2>&1
# empty line

我的docker-compose.xml设置为以下

version: '3'
services:
data:
build: ./data/
db:
build: ./db/
volumes_from:
- data
volumes:
- ./db/:/var/lib/mysql
ports:
- "3306:3306"
environment:
- MYSQL_DATABASE=myDB
- MYSQL_USER=myUser
- MYSQL_PASSWORD=Password
- MYSQL_ROOT_PASSWORD=Password
- MYSQL_ROOT_HOST=""

创建文件crontab并添加类似的条目

FROM mysql:8
RUN apt-get update && apt-get -y install cron
# Add crontab file in the cron directory
ADD crontab /etc/cron.d/test-cron
# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/test-cron
# Apply cron job
RUN crontab /etc/cron.d/test-cron
# Create the log file to be able to run tail
RUN touch /var/log/cron.log
# Run the command on container startup
CMD cron && tail -f /var/log/cron.log

相关内容

  • 没有找到相关文章

最新更新