我正在设置一个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