docker 如何防止容器在错误期间关闭?

z9smfwbn  于 2023-06-21  发布在  Docker
关注(0)|答案(3)|浏览(165)

每当我在代码中犯了错误或其他错误时,容器就会关闭,留给我的是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-compose

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
vfwfrxfs

vfwfrxfs1#

你所要做的就是在你的docker-compose中使用这个策略:
restart: always
但我建议你找到并修复代码中的错误。
编辑:我忘了说,这并不能阻止关闭容器,它所做的只是在出现错误时自动重新启动它。

1szpjjfi

1szpjjfi2#

每个docker容器本质上只运行一个主进程--即Dockerfile末尾的ENTRYPOINT和/或CMD。
如果你想要的是你想要的进程重新启动,而不必完全重新启动你的容器,那么你将不得不使用像supervisord这样的进程管理器。
here提供了您正在寻找的更多信息和解决方法。
然而,我仍然建议您首先通过适当的异常处理来防止您的流程退出。

zf9nrax1

zf9nrax13#

你有没有尝试在docker compose中的容器下添加以下内容?
command: sleep infinity
它将保持容器向上,以便您可以编辑代码。

相关问题