Django 와 Mysql을 Docker로 띄우기
docker-compose.yml파일 작성
version: "3.8"
services:
app:
build: .
volumes:
- .:/django
ports:
- 8000:8000
image: app:django
container_name: django_container
command: python manage.py runserver 0.0.0.0:8000
depends_on:
db:
condition: service_healthy
restart: true
db:
container_name: mysql_db
image: mysql:8.0
environment:
MYSQL_DATABASE: 'django-app-db'
MYSQL_ALLOW_EMPTY_PASSWORD: 'true'
volumes:
- ./data/mysql/db:/var/lib/mysql
- ./mysql:/docker-entrypoint-initdb.d
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
timeout: 20s
retries: 10
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --skip-character-set-client-handshake
# - mysql -uroot --port 3306 < ./docker-entrypoint-initdb.d/initial_data.sql
Dockerfile작성
# Dockerfile
FROM python:3.9
ENV PYTHONUNBUFFERED 1
RUN apt-get -y update
RUN mkdir /django
ADD . /django
WORKDIR /django
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
django> settings.py DB설정을 아래와 같이 변경
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django-app-db', #db명
'USER': 'root', #db user 이름
'PASSWORD': '', #db password
'HOST': 'db',
'PORT': '3306',
}
}
docker-compose build
docker-compose run --rm app django-admin startproject app .
docker-compose up
docker exec -it django_container /bin/bash
터미널에서 위 순서대로 커맨드 실행
참조 유튜브:
반응형
'주저리 tmi' 카테고리의 다른 글
| ISA 만기 해지 방법 총정리 | 퇴직연금(IRP) 전환 실전 후기 (feat. 손실 난 경우) (0) | 2026.02.03 |
|---|---|
| 연말정산 월세 소득공제 현금영수증 처리 방법: 묵시연장 케이스 완벽 정리 (0) | 2026.01.25 |
| [Docker] mysql 초기 DB 셋팅해두기 (5) | 2024.11.29 |
| [재테크] 연금저축과 IRP 차이, 장단점 비교 (3) | 2024.11.13 |
| 비전공자에서 개발자 전향이란 (0) | 2024.03.04 |