При докеризации django vue3 приложения контейнер django не работает
Я изучаю docker и во время докеризации моего приложения django vue3 я получил ошибку.
Dockerfile:
FROM python:3.11-slim
RUN apt-get update && apt-get install -y \
libpq-dev gcc curl \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /backend/project
COPY requirements.txt /backend/
RUN pip install --no-cache-dir -r /backend/requirements.txt
COPY . /backend/
RUN chown -R www-data:www-data /backend
USER www-data
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
Docker-compose:
version: '3.9'
services:
web:
build:
context: .
dockerfile: dockerfile
container_name: c_django
command: python manage.py runserver 0.0.0.0:8000
volumes:
- ./backend:/app
ports:
- 8000:8000
environment:
ALLOWED_HOSTS: '*'
DEBUG: 'True'
SECRET_KEY: random_secret_key
DATABASE_NAME: fitness
DATABASE_USER: postgres
DATABASE_PASSWORD: 123456
DATABASE_HOST: db
DATABASE_PORT: 5432
REDIS_URL: redis://redis:6379/1
depends_on:
- db
- redis
networks:
- frontend_backend
db:
image: postgres:15
container_name: c_postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: 123456
POSTGRES_DB: fitness
ports:
- 5432:5432
volumes:
- postgres_data:/var/lib/postgresql/data
frontend:
build:
context: ../frontend
container_name: c_frontend
ports:
- 8080:80
depends_on:
- web
networks:
- frontend_backend
nginx:
image: nginx:latest
container_name: c_nginx
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d
- ./frontend/dist/:/usr/share/nginx/html
ports:
- 80:80
depends_on:
- frontend
networks:
- frontend_backend
redis:
image: redis:8.0-M02-alpine
container_name: c_redis
ports:
- 6379:6379
networks:
- frontend_backend
volumes:
postgres_data:
networks:
frontend_backend:
driver: bridge
Когда я запускаю docker compose, я получаю эту ошибку для django :
Когда я искал его в google, я не решил эту проблему. Я даже задал его в chatgpt, но безрезультатно. Как я могу решить эту проблему? Я разверну свое веб-приложение, но сначала я хочу протестировать его на моем localhost. Настройки пока что для localhost.
Настройки:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'fitness',
'USER': 'postgres',
'PASSWORD': '123456',
'HOST': 'db',
'PORT': '5432',
}
}
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://redis:6379/1',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
}
}
}
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
"hosts": ["redis://redis:6379/1"],
},
},
}
DEBUG = True
ALLOWED_HOSTS = ['*']