如何防止容器在发生错误时关闭?

2024-04-18 08:45:04 发布

您现在位置:Python中文网/ 问答频道 /正文

每次我在代码中犯了错误或其他什么,容器都会关闭,留给我shotel_backend exited with code 1。如何预防

这是Dockerfile

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN pip install pipenv

RUN mkdir /backend
WORKDIR /backend

ADD Pipfile Pipfile.lock /backend/
RUN pipenv install

ADD . /backend/

这里是docker作曲

version: '3'

services:
    backend:
        container_name: shotel_backend
        build: ./backend
        volumes:
            - ./backend/:/backend
        working_dir: /backend/
        command: pipenv run python manage.py runserver 0.0.0.0:8000
        ports:
            - 8000:8000

Tags: installrun代码dockerfileaddbackendpipenv错误
2条回答

每个docker容器实际上只运行一个主进程,即Dockerfile末尾的入口点和/或CMD

如果您希望重新启动所需的流程,而不必完全重新启动容器,那么您将必须使用类似supervisord的流程管理器

有关您所寻找的内容的更多信息和解决方法,请参见here

但是,我仍然建议您首先通过适当的异常处理来阻止进程退出

您所要做的就是在docker compose中使用此策略:

restart: always

但我建议您查找并修复代码中的错误

编辑:我忘了说这并不能阻止关闭容器,它所做的只是在出现错误时自动重新启动它

相关问题 更多 >