好朋友,我正在使用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
答案 0 :(得分:1)
您可以将clone
添加到restart: always
服务定义中。如果前一个容器因任何原因退出,这将启动一个新的django
容器。
您应该获得有关进程退出原因的一些日志。尝试运行django
以查看是否有关于进程退出原因的线索。您的Python代码中可能存在由某些URL触发的错误,并导致该进程退出。