Django泊坞窗退出代码0请求GET或POST

好朋友,我在django 1.11上用docker在windows上开发了一个应用程序,最近更新了项目的git仓库,并对Docker容器做了一些修改。

问题是,当进入主页面和其他一些URL没有任何反应,但是当我尝试login到pipe理员,Django的容器被closures,我甚至没有得到任何错误的浏览器,控制台或日志。

例:

当我进来的时候他们很好

GET / 200 OK
POST / 403禁止
GET / api / auth / 405方法不允许

但是,当我input这些,而不显示任何消息,closuresdocker容器(proyect_django_1退出代码为0)

GET / admin没有答案
POST / api / auth /无答案

我的docker – 撰写

version: '3' services: db: build: docker/postgres volumes: - ./docker/data/postgres:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=postgres - POSTGRES_USER=postgres - POSTGRES_DB=project redis: image: redis:3.2-alpine volumes: - ./docker/data/redis:/data rabbit: image: rabbitmq:3-management-alpine environment: - RABBITMQ_DEFAULT_USER=admin - RABBITMQ_DEFAULT_PASS=admin django: build: context: . args: - REQUIREMENTS=development.txt command: python3.6 manage.py runserver 0.0.0.0:8008 volumes: - ./:/code working_dir: /code/project env_file: ./docker/DevelopmentEnv ports: - "8008:8008" links: - db - rabbit - redis depends_on: - db celeryworker: build: context: . args: - REQUIREMENTS=development.txt working_dir: /code/project volumes: - ./:/code env_file: ./docker/DevelopmentEnv links: - db - rabbit command: celery -A config worker -l INFO -Q celery frontend: image: node:8.4-alpine volumes: - ./:/code working_dir: /code/frontend command: ash -c "yarn install --no-bin-links && yarn run build" socketio: image: node:8.4-alpine volumes: - ./:/code working_dir: /code/sockets command: ash -c "yarn install --no-bin-links && yarn start" ports: - "3000:3000" links: - redis - django depends_on: - redis 

我的dockerfile

 FROM python:3.6.2-alpine3.6 ARG REQUIREMENTS RUN apk update RUN apk add postgresql-dev postgresql-client RUN apk add libffi-dev gcc RUN apk add musl-dev zlib-dev jpeg-dev RUN apk add --no-cache --virtual .build-deps-testing \ --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \ gdal-dev RUN mkdir /code ADD ./ /code/ WORKDIR /code RUN pip3.6 install -r requirements/$REQUIREMENTS WORKDIR /code/project 

你可以添加restart: always到你的django服务定义。 如果前一个容器出于任何原因退出,这将启动一个新的django容器。

你应该得到一些日志,说明为什么进程正在退出。 尝试运行docker inspect <container-name>以查看是否有任何关于进程退出的线索。 您的Python代码中可能存在一些由某些URL触发的错误,并导致进程退出。