venv & Docker

천호영·2021년 6월 8일

requirements.txt 작성

python3 -m venv venv #가상환경 만들기
source venv/bin/activate #활성화
# venv\Scripts\activate (윈도우)

pip install django
pip install django-rest-framework
pip install psycopg2

pip freeze > requirements.txt
#.gitignore도 추가!

Dockerfile

FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR /web
COPY . .
RUN pip install -r requirements.txt

docker-compose.yml

version: "3"

services:
  web:
    build: .
    command: python manage.py runserver 0:8000
    ports:
      - "8000:8000"
    volumes:
      - .:/web
    depends_on:
      - db
  db:
    image: postgres
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres

docker build

docker build . # docker build -t app . 으로 이미지에 이름붙이기

프로젝트 생성

docker-compose run web django-admin startproject our_project .

프로젝트 설정

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql",
        "NAME": "postgres",
        "USER": "postgres",
        "PASSWORD": "postgres",
        "HOST": "db",
        "PORT": 5432,
    }
}

실행 & migrate

docker-compose up -d #서비스 실행 후 콘솔로 빠져나오기

docker-compose exec web python manage.py migrate
docker-compose exec web python manage.py makemigrations

createsuperuser, startapp

docker-compose exec web python manage.py createsuperuser
docker-compose exec web python manage.py startapp [myapp]

DB초기화

docker-compose down --volume

컨테이너 종료

docker-compose kill

컨테이너 종료 및 삭제

docker-compose down

Docker Hub에 push

이미지명 앞에 Docker Hub 계정을 붙여서
(Docker Hub 계정)/docker-repo:first-image 와 같이 새로 만들어줍니다.

docker build -t hou1000/levle_one .

tag를 변경해줍니다.
$ docker tag first-image (Docker Hub 계정)/docker-repo:first-image
$ docker push (Docker Hub 계정)/docker-repo:first-image


cf) wsl에서 explorer.exe .를 입력하면 gui로 폴더에 접근할 수 있습니다.

docker push: https://github.com/sangyeol-kim/ausg-docker-seminar/issues/10

https://fenderist.tistory.com/m/409

https://www.daleseo.com/docker-compose-django/

https://www.44bits.io/ko/post/almost-perfect-development-environment-with-docker-and-docker-compose

0개의 댓글