如何在系统重启时不启动Docker容器?

dy1byipe  于 2023-03-01  发布在  Docker
关注(0)|答案(2)|浏览(169)

我有compose.yml文件:

api:
    restart: on-failure
    command: uvicorn app:app
    ...

  jobs:
    restart: on-failure
    command: python job.py
    ...

job.py

import asyncio
from prometheus_client import start_http_server

async def background(sio):
    await asyncio.gather(...) # <- there are many tasks with while True

start_http_server(5000)
asyncio.run(background(sio))

它工作正常。停止后一切都关闭。但当我重新启动系统,jobs容器自动启动。为什么?! api没有启动,但为什么jobs启动?

z6psavjg

z6psavjg1#

我认为Docker只是试图运行系统关闭前运行的容器。也许可以尝试将restart策略更改为no以防止在启动时重新启动?

jobs:
    restart: no
dgiusagp

dgiusagp2#

根据文档,unless-stopped可能是正确的选择。

jobs:
    restart: unless-stopped
    command: python job.py

相关问题