アプリケーションコンテナの作成
Djangoアプリケーション用のDockerファイルを作成します。
mkdir -p docker/app
touch docker/app/Dockerfile
trouch docker-compose.dev.yml
1FROM python:3.11
2
3RUN apt-get update && \
4 apt-get install -y curl default-libmysqlclient-dev build-essential pkg-config
5
6RUN adduser django && \
7 usermod -aG www-data django
8
9USER django
10RUN curl -sSL https://install.python-poetry.org | python3 -
11COPY --chown=django:django ./mysite /home/django/mysite
12COPY --chown=django:django ./pyproject.toml /home/django/pyproject.toml
13WORKDIR /home/django
14ENV PATH="/home/django/.local/bin:$PATH"
15RUN poetry install
16
17WORKDIR /home/django/mysite
1version: '3.9'
2services:
3 app:
4 container_name: django
5 build:
6 dockerfile: ./docker/app/Dockerfile
7 ports:
8 - 8000:8000
9 command: poetry run python manage.py runserver 0.0.0.0:8000
アプリケーションコンテナをビルドします。
docker compose -f docker-compose.dev.yml build app
アプリケーションコンテナを起動します。
docker compose -f docker-compose.dev.yml up -d app
コンテナが起動していることを確認します。
docker compose -f docker-compose.dev.yml ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
django django-docker-sample-app "poetry run python m…" app 6 minutes ago Up 6 minutes 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp
ログにエラーがないことを確認します。
docker compose -f docker-compose.dev.yml logs
http://localhost:8000/polls/ にアクセスできることを確認します。
コンテナを終了します。
docker compose -f docker-compose.dev.yml down