每次我输入错误或代码中的内容时,容器都会关闭并给我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
答案 0 :(得分:0)
您要做的就是在docker-compose中使用此策略:
restart: always
但是我建议您在代码中查找并修复错误。
编辑:我忘了说这不会阻止关闭容器,它所做的只是在出现错误时自动重新启动它。
答案 1 :(得分:0)
每个docker容器实际上只运行一个主进程-Dockerfile末尾的ENTRYPOINT和/或CMD。
如果您想要重新启动所需的过程而不必完全重新启动容器,那么您将必须使用诸如supervisor之类的过程管理器。
here给出了您正在寻找的更多信息和解决方法。
不过,我仍然建议您首先通过适当的异常处理来防止进程退出。