Docker + django API

GisangLee·2022년 2월 26일
0

docker

목록 보기
3/6

1 Docker File 작성

FROM python:3.9

ENV PYTHONUNBUFFERED 1
RUN apt-get -y update && apt-get clean

WORKDIR /usr/src/dev_comu

COPY . .

RUN pip install --upgrade pip
RUN pip install -r requirements.txt

EXPOSE 8000

Docker 이미지 생성

$ docker build -t <생성하고자 하는 도커 이미지 이름>
$ docker images

Docker run (실행되는지 테스트)

$ docker run --rm -d -p [호스트 포트]:80 [생성한 이미지 이름]

Docker 허브에 Push하기

$ docker login
$ docker tag [도커 이미지 이름]:latest [도커 허브 아이디]/[도커 이미지 이름]:latest
$ docker push [도커 허브 아이디]/[도커 이미지 이름]:latest

AWS EC2에서 실행하기

$ docker run -d -p [호스트 포트]:80 [생성한 이미지 이름]

보너스 : Docker Compose

version: "3.7"

services:
  django:
    build:
      context: ./
      dockerfile: Dockerfile

    container_name: dev_comu_backend

    restart: always

    ports:
      - 8000:8000

    env_file:
      - .env

    depends_on:
      - db

    volumes:
      - .:/usr/src/dev_comu

    networks:
      - dev_comu_net

    command: >
      sh -c "python manage.py runserver 0.0.0.0:8000"

  db:
    image: mysql:8.0
    restart: always
    container_name: dev_comu_db
    ports:
      - "3306:3306"
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    environment:
      - MYSQL_PORT=${MYSQL_PORT}
      - MYSQL_DATABASE=${MYSQL_NAME}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - TZ=Asia/Seoul

    volumes:
      - db_volume:/var/lib/mysql

    networks:
      - dev_comu_net

networks:
 dev_comu_net:

volumes: # 볼륨을 따로 생성
  db_volume:

자주쓰는 명령어

$ docker-compose run django django-admin startproject config .

$ docker-compose run django python manage.py makemigraitons # migration 관련 명령어들

백그라운드 실행

docker-compose up -d

profile
포폴 및 이력서 : https://gisanglee.github.io/web-porfolio/

0개의 댓글