2017-08-24 40 views
0

好朋友碼0退出,我在Windows上開發在Django 1.11與泊塢窗的應用,最近更新項目的Git倉庫中,也做出了一些改變與泊塢窗容器。Django的碼頭工人在請求GET或POST

問題是,當進入主頁面和其他一些URL時什麼都沒有發生,但是當我嘗試登錄到管理員時,django容器被關閉,我甚至沒有通過瀏覽器,控制檯或日誌得到任何錯誤。

例子:

當我來到這裏,他們都很好不允許

GET/200 OK
POST/403禁止
GET/API/AUTH/405方法

但當我輸入這些,沒有顯示任何消息,關閉搬運工容器(proyect_django_1與代碼0退出)

GE T /管理員無人接聽
POST/API/auth /中沒有回答

我的碼頭工人,組成

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 
+0

發佈你的Dockerfile和其他細節 –

+0

你運行的是什麼命令來啓動應用程序? Dockerfile中沒有CMD部分。運行時,您的容器將立即退出。 – yamenk

+0

容器,如果它運行,這對我來說沒有任何問題響應多個URL,但別人不一樣。我運行所有容器的命令是docker-up –

回答

1

你可以添加restart: alwaysdjango服務定義。如果前一個退出以任何理由這將啓動一個新的django容器。

你應該得到有關爲何進程退出一些日誌。嘗試運行docker inspect <container-name>以查看是否有任何關於該進程退出的線索。您的Python代碼中可能存在一些由某些URL觸發的錯誤,並導致該過程退出。