DockerによるDjango開発環境コンテナ作成&起動
DockerによるDjango開発環境
ソースコードの開発は、Windows上のPyCharmで、アプリケーションの動作確認はDockerコンテナ(Ubuntu)のrunserverで実行できる環境構築におけるDockerコンテナ作成&起動操作メモです。
全体像は、次のようになります。
コンテナの一覧表示
docker ps -a
1つまたは複数のコンテナを削除
docker rm コンテナID
イメージを一覧表示
docker images
1つまたは複数のイメージを削除
docker rmi イメージID
mysiteイメージ作成
Dockerfile格納ディレクトリ(mysite)に移動して、実行
以下は、Dockerfileの内容です。
Dockerfileは、拡張子は付けません。
ubuntu:18.04をベースにしたDockerイメージ作成用の内容です。
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 37 38 39 40 41 42 |
FROM ubuntu:18.04 ENV PYTHONUNBUFFERED 1 ENV PYTHONIOENCODING utf-8 ENV HOME /root ENV DEPLOY_DIR ${HOME}/mysite RUN apt update # Set locale # https://stackoverflow.com/a/28406007 RUN apt install -y locales RUN sed -i -e "s/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/" /etc/locale.gen \ && locale-gen ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 # Install Python 3.7 RUN apt install -y wget \ build-essential \ zlib1g-dev \ # https://stackoverflow.com/a/43923402 libssl-dev \ # https://stackoverflow.com/a/29862854 libsqlite3-dev WORKDIR ${HOME} RUN wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz \ && tar zxf Python-3.7.5.tgz \ && cd Python-3.7.5 \ && ./configure --enable-optimizations \ && make altinstall # Set alias RUN update-alternatives --install /usr/local/bin/python3 python3 /usr/local/bin/python3.7 1 RUN update-alternatives --install /usr/local/bin/pip3 pip3 /usr/local/bin/pip3.7 1 RUN pip3 install -U pip WORKDIR ${DEPLOY_DIR} CMD ["/bin/bash"] |
docker build -t mysite:1.0 C:\Users\user\PycharmProjects\mysite
Dockerコンテナ作成&実行
docker run -it -p 8000:8000 -v C:\Users\user\PycharmProjects\mysite:/root/mysite –name mysite mysite:1.0 /bin/bash
Dockerコンテナを実行し、bashで対話型シェルにログインする。
その際、runserverのために8000番ポートを開けておく。
また、DjangoプロジェクトのディレクトリをDocker側の「/root/mysite」ディレクトリと同期する。
Docker側で必要なモジュールを適宜インストールする。
root@XXXXXX:~/mysite # pip3 install “Django==2.2” # Djangoのインストール
# XXXXXXは、コンテナID
root@XXXXXX:~/mysite # apt-get install nano # nanoエディターのインストール
Webサーバー実行
root@XXXXXX:~/mysite # python3 manage.py runserver 0.0.0.0:8000
実行したら、ブラウザで確認
Dockerコンテナ起動
docker start コンテナIDまたはname
Dockerログイン
docker attach コンテナID
Dockerログアウト
docker dettach コンテナID
Dockerコンテナ停止
docker stop コンテナIDまたはname
インストールできたら、サービスの起動確認
Docker起動手順
UbuntuにMySQLをインストールして、DjangoでMySQLに接続します。
- Powershell起動
- docker ps -a
- docker start コンテナID
- docker attach コンテナID
- root@[コンテナID]:~/mysite # service mysql start # mysql起動
「root@[コンテナID]:~/mysite #」は、Ubuntuのコマンドプロンプト - root@[コンテナID]:~/mysite # mysql -u root # 作成したユーザでMySQLへ接続
- root@[コンテナID]:~/mysite # quit # mysqlから抜ける
- root@[コンテナID]:~/mysite # python3 manage.py runserver 0.0.0.0:8000 # サーバーを起動
- http://localhost:8000/ # ブラウザで確認