Docker_DjangoプロジェクトをDockerで動かす #315日目
以前の記事でも似たことをやりましたが、今回はWebアプリをちゃんと動かすための設定をやっています。Dockerの基本設定は終わっている前提です。
Webアプリはこの記事の内容をベースにしたものですが、詳細は割愛します。
ディレクトリの構成は以下です。
converter ----- yt-converter ----- app
| |-- config
| |-- media_root
| `- manage.py
|
|-- docker-compose.yml
|
`- Dockerfile
まずDockerfileを定義します。
[Dockerfile]
FROM python:3
USER root
RUN apt-get update
# 日本語設定など
RUN apt-get -y install locales && \
localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9
ENV TERM xterm
# アプリに必要なライブラリやソフトウェアをインストール
RUN apt-get install -y vim less
RUN apt-get -y install ffmpeg
RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN python -m pip install django
RUN python -m pip install yt-dlp
次にdocker-compose.ymlを定義します。
version: '3.10'
services:
yt-converter:
container_name: youtube_converter
build: .
working_dir: '/root/yt-converter'
tty: true
volumes:
- ./yt-converter:/root/yt-converter
ports:
- "8000:8000"
image: yt_converter
volumesでマウントさせたいフォルダを定義しています。自分の環境のyt-converterフォルダをコンテナ内のyt-converterにマウントしています。
working_dirは「'/root/'」という書き方でも良いのですが、「'/root/yt-converter'」と書くことで、コンテナに入った際に直接yt-converterフォルダに入ることができます。コンテナに入って毎回cdしてからDjangoを立ち上げるのは手間なので、このように設定しました。
あとは順番にコマンドしていくだけです。
イメージをビルドしてコンテナを立ち上げます。
$ docker-compose up -d --build
コンテナ内に入ります。
$ docker exec -it youtube_converter bash
Djangoのmanage.pyを走らせます。この時、開発環境であれば「0:8000」とポートを指定して起動してください。コンテナ内部の8000とローカル環境が紐づいていないため、0 (= 0.0.0.0) を指定することでホスト側からアクセスできるようにします。
root@83fe3fa2a67d:~/yt-converter# python manage.py runserver 0:8000
無事に動きました。
ここまでお読みいただきありがとうございました!
参考
この記事が気に入ったらサポートをしてみませんか?