Невозможно применить статический файл в django / docker

введите описание изображения здесь

что мне делать дальше? Дайте мне совет...

это репозиторий github
https://github.com/OZ-Coding-School/oz_02_collabo-006-BE/tree/Feature-docker

я хочу применить css и решить ошибку cors

nginx.conf

server {
    listen 80;
    server_name 223.130.133.22;

    location / {
        proxy_pass http://dg01:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # 정적 파일 설정
    location /static/ {
        alias /src/static;  # Docker 컨테이너 내 Django STATIC_ROOT 경로
        expires 30d;  # 브라우저 캐싱 최대화
    }


}

dockerfile

# Python 3.12 베이스 이미지를 사용합니다.
FROM python:3.12

# 환경 변수 설정으로 Python 출력을 stdout으로 보내도록 설정합니다.
ENV PYTHONUNBUFFERED=1


RUN mkdir -p /path/to/django/logs/
RUN mkdir -p /var/log/nginx



# 필요한 시스템 패키지 설치
# libpq-dev: PostgreSQL 데이터베이스 연동을 위한 라이브러리
RUN apt-get update \
    && apt-get install -y --no-install-recommends libpq-dev \
    && rm -rf /var/lib/apt/lists/*

# pip를 최신 버전으로 업그레이드하고 poetry를 설치합니다.
RUN pip install --upgrade pip \
    && pip install poetry

# /app 디렉터리를 작업 디렉터리로 설정합니다.
WORKDIR /src

# 프로젝트의 Python 종속성 관리 파일을 작업 디렉터리로 복사합니다.
COPY pyproject.toml poetry.lock* /src/

# poetry를 사용하여 의존성을 설치합니다. 가상 환경은 생성하지 않습니다.
RUN poetry config virtualenvs.create false \
    && poetry install --no-dev --no-interaction --no-ansi

# 프로젝트의 나머지 파일을 작업 디렉터리로 복사합니다.
COPY . /src

# entrypoint.sh 스크립트에 실행 권한을 부여합니다.
RUN chmod +x /src/entrypoint.sh

# 컨테이너가 시작될 때 실행할 명령어를 설정합니다.
ENTRYPOINT ["/src/entrypoint.sh"]

# gunicorn을 사용하여 Django 앱을 호스트합니다. 이때 포트 8000을 사용합니다.
CMD ["gunicorn", "config.wsgi:application", "--bind", "unix:/tmp/gunicorn.sock"]

docker-compose.yml

version: "3"

services:
  web:
    build: .
    container_name: dg01
    command: >
      bash -c "python manage.py collectstatic --no-input &&
      python manage.py makemigrations &&
      python manage.py migrate &&
      gunicorn config.wsgi:application --bind 0.0.0.0:8000"
    volumes:
      - ./src:/app
      - static_volume:/static
      - media_volume:/media
      - static-volume:/static
    depends_on:
      - db
    ports:
      - "8000:8000"

  nginx:
    image: nginx:1.17.10
    container_name: ng01
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./static:/static
      - static-volume:/static
    depends_on:
      - web

  db:
    image: postgres:12.2
    container_name: ps01
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: db
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: admin
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:
  static_volume:
  media_volume:
  static-volume:

entrypoint.sh

#!/bin/bash
set -e

python manage.py makemigrations

# 데이터베이스 마이그레이션 실행
python manage.py migrate

# 정적 파일 수집
python manage.py collectstatic --no-input --settings=config.settings

# python manage.py create_my_superuser

# 커맨드 라인에서 전달된 명령 실행 (CMD에서 정의된 명령)
exec "$@"
Вернуться на верх