docker compose 在宿主主机使用cron操作容器里的定时任务

docker · Fecmall · 于 5年前 发布 · 3258 次阅读

crontab -e,里面写入下面的内容,即可执行

* * * * * cd /www/docker && /usr/local/bin/docker-compose  exec -T golang /www/golang/fec-go-shell >> /www/docker.log 2>&1

解读

* * * * *:这个是定时的周期部分

1.需要进入你的yml所在的目录,也就是cd /www/docker

2.docker-compose需要使用绝对路径,也就是/usr/local/bin/docker-compose

3.参数 -T需要加上,不然会报错:

Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "compose/cli/main.py", line 57, in main
  File "compose/cli/main.py", line 108, in perform_command
  File "compose/cli/main.py", line 353, in exec_command
  File ".tox/py27/lib/python2.7/site-packages/dockerpty/pty.py", line 338, in start
  File ".tox/py27/lib/python2.7/site-packages/dockerpty/io.py", line 32, in set_blocking
ValueError: file descriptor cannot be a negative integer (-1)
docker-compose returned -1

4.golang是容器的名字

5./www/golang/fec-go-shell执行的容器的脚本

6./www/docker.log 2:写入宿主主机的log文件

资料:https://github.com/docker/compose/issues/3352

共收到 0 条回复
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics