實作
如果有使用資料庫,修改 example/settings.py
檔。
1 2 3 4 5 6 7 8 9 10
| DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'USER': 'postgres', 'NAME': 'article_api', 'PASSWORD': 'root', 'HOST': 'postgres', 'PORT': '5432', } }
|
新增 Dockerfile
檔。
1 2 3 4 5 6 7 8 9 10 11 12 13
| FROM python:3.11-alpine
WORKDIR /app
COPY requirements.txt .
RUN pip3 install -r requirements.txt --no-cache-dir
COPY . /app
EXPOSE 8000
CMD ["python3", "manage.py", "runserver", "0.0.0.0:8000"]
|
新增 docker-compose.yml
檔。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| version: "3"
services: app: container_name: django-api-example build: . restart: always depends_on: - postgres volumes: - .:/var/www ports: - "80:8000" networks: - backend
postgres: image: postgres:latest container_name: django-api-example-postgres restart: always volumes: - postgres:/var/lib/postgresql/data ports: - "5432:5432" networks: - backend environment: POSTGRES_DB: article_api POSTGRES_USER: postgres POSTGRES_PASSWORD: root
networks: backend:
volumes: postgres:
|
啟動服務。
進入容器。
1
| docker exec -it django-api-example sh
|
執行遷移。
1
| python manage.py migrate
|
建立使用者。
1
| python manage.py createsuperuser
|