我为我的django应用程序提供了本地&生产docker-compose服务,在本地服务中一切正常,但是在生产服务daphne中不起作用,同样,redis连接等于并且我没有使用我的docker compos服务的特殊网络配置。
本地撰写:
version: "3"
services:
app:
image: app
build:
context: .
dockerfile: ./compose/local/Dockerfile
environment:
- DJANGO_SETTINGS_MODULE=psvt.settings.local
volumes:
- ".:/django/"
ports:
- "8000:8000"
depends_on:
- redis
- db
links:
- redis:redis
- db:postgres
redis:
image: redis
restart: always
expose:
- '6379'
daphne:
restart: always
image: "app:latest"
working_dir: /django/
command: bash -c "daphne -b 0.0.0.0 -p 8001 psvt.asgi:channel_layer"
ports:
- "8001:8001"
environment:
- REDIS_HOST=redis
- DJANGO_SETTINGS_MODULE=psvt.settings.local
depends_on:
- redis
links:
- redis
db:
image: postgres:10.1-alpine
volumes:
- postgres_data:/var/lib/postgresql/data/
expose:
- "5432"
volumes:
postgres_data:
生产:(此处达芙妮不起作用)
version: "3"
services:
app:
image: app_production
build:
context: .
dockerfile: ./compose/production/Dockerfile
#command: bash -c "gunicorn psvt.wsgi:application --bind 0.0.0.0:8000"
command: bash -c "./manage.py runserver"
working_dir: /django/
environment:
- DJANGO_SETTINGS_MODULE=psvt.settings.production
volumes:
- ".:/django/"
- static_files:/static/
- media_files:/media/
ports:
- "8000:8000"
depends_on:
- redis
- db
links:
- redis:redis
- db:postgres
daphne:
restart: always
image: "app_production:latest"
working_dir: /django/
command: bash -c "daphne -b 0.0.0.0 -p 8001 psvt.asgi:channel_layer"
ports:
- "8001:8001"
environment:
- REDIS_HOST=redis
- DJANGO_SETTINGS_MODULE=psvt.settings.production
depends_on:
- redis
links:
- redis
redis:
image: redis
restart: always
expose:
- '6379'
db:
image: postgres:10.1-alpine
volumes:
- postgres_data:/var/lib/postgresql/data/
expose:
- "5432"
nginx:
build:
context: ./compose/nginx/
dockerfile: ./Dockerfile
ports:
- 100:80
- 5000:80
links:
- app:app
volumes:
- static_files:/static/
- media_files:/media/
depends_on:
- app
volumes:
postgres_data:
static_files:
media_files:
错误是:
Error trying to receive messages: Error -2 connecting to redis:6379. Name or service not known.