使用docker-compose文件调度docker容器

3

我有一个Docker容器,使用docker-compose文件一起启动一个数据库容器。我想要做到以下几点:

  • 保持数据库容器运行
  • 安排包含我的Python程序的容器每天运行,生成结果并再次停止

这是我的配置文件:

version: '3.7'

services:
   database:
      container_name: sql_database
      image: mysql:latest
      command: --init-file /docker-entrypoint-initdb.d/init.sql
      ports:
       - 13306:3306
      environment:
         MYSQL_ROOT_PASSWORD: root
      volumes:
       - ./backup.sql:/docker-entrypoint-initdb.d/init.sql

   python-container:
      container_name: python-container
      build: ./python_project
      command: python main.py
      depends_on: 
       - database
      volumes: 
       - myvol:/python_project/data

volumes: 
   myvol:

有人可以帮我解决这个问题吗?谢谢!


3
Compose本身没有作业调度程序;通常情况下,可以运行一个专用的cron容器或使用主机的cron来启动任务。翻译完毕,无其他返回。 - David Maze
2个回答

0
如果底层容器有一个bash shell,您可以设置command以运行带延迟的循环,例如:

while true; do python main.py; sleep 1; done


0

我正想问同样的事情。为了每天运行一个作业(在我的情况下是certbot renew),保持容器 24/7 运行似乎很愚蠢。

我认为可以使用 RESTART_POLICY 选项来模拟这种情况,设置一个长时间的延迟和无最大重试次数,但我还没有尝试过。

编辑: 显然,restart_policy 只适用于集群。遗憾。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接