django docker退出请求GET或POST中的代码0

时间:2017-08-24 14:43:46

标签: django post docker get docker-compose

好朋友,我正在使用windows上的docker在django 1.11中开发应用程序,最近更新了项目的git存储库,并使用docker容器进行了一些更改。

问题是,当进入主页面和其他一些URL没有任何反应时,但当我尝试登录管理员时,django容器已关闭,我甚至没有通过浏览器,控制台或日志收到任何错误。

示例:

当我进来时他们很好

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

但是当我输入这些内容而没有显示任何消息时,请关闭docker容器(proyect_django_1退出代码为0)

GET / admin无答案
POST / api / auth / No answer

我的docker-compose

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

1 个答案:

答案 0 :(得分:1)

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

您应该获得有关进程退出原因的一些日志。尝试运行django以查看是否有关于进程退出原因的线索。您的Python代码中可能存在由某些URL触发的错误,并导致该进程退出。