[docker] docker compose (nginx-gunicon-mysql)

이정훈·2023년 4월 19일
0

docker

목록 보기
6/7
post-thumbnail

  • settings.py : allowed host를 열어주고, db와 연동될 수 있도록 변경, CORS도 수정

  • urls.py : nginx에서 /dev 로 왔을 때 경로를 지정

  • data : 디렉토리를 만들어 줬고, 볼륨으로 데이터베이스의 내용들을 마운트

  • init/db.spl : 디렉토리를 만들고, db.spl 파일을 만들어 mysql에 데이터베이스 만들기 위해 sql퀴리문을 작성

  • requirements.txt : djnago를 실행하기 위해 pip로 설치했던 친구들

  • App.js : fetch 가야할곳! 수정!

  • deafult.conf : 파일을 만들어 줬고 /dev 로오면 back으로 가라고 설정, 여기서 root html파일이 모여있는곳을 변경해줘야한다 변경할 곳은 우리가 dockerfile을 만들때 사용했던 경로를 넣어줘야한다.

같은 로컬환경에서 컨테이너를 만들어 실행했기 때문에 IP는 192.168.0.14로 모두

services:
  db:
    image: mysql:8.0.32-debian
    command: --init-file /init/db.sql
    volumes:
      - ./back/data:/var/lib/mysql
      - ./back/init:/init
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: qwer1234
    ports:
      - 3306:3306
    healthcheck:
      test: mysqladmin ping -pqwer1234
      timeout: 20s
      retries: 10

  backend:
    build:
      context: ./back
      dockerfile: Dockerfile
    command: sh -c "python manage.py migrate && gunicorn config.wsgi --bind 0.0.0.0:8000"
    ports:
      - 8000:8000
    depends_on:
      db:
        condition: service_healthy

  frontend:
    build:
      context: ./front
      dockerfile: Dockerfile
    command: nginx -g "daemon off;"
    ports:
      - 80:80
  • docker-compose.yml
FROM nginx:latest
RUN rm -rf /usr/share/nginx/html/index.html
ADD build /usr/share/nginx/html/
RUN rm -rf /etc/nginx/conf.d/default.conf
ADD default.conf /etc/nginx/conf.d/default.conf
  • front Dockerfile
FROM python:3.9
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY requirements.txt /app/requirements.txt
COPY . /app
RUN pip install -r requirements.txt
  • back Dockerfile

profile
싱숭생숭늉

0개의 댓글