知りたいこと
DockerFile記述内容のベストプラクティスについて質問です。
CentOSベースのコンテナで自作Webアプリを動かしたいと思っています。
言語はPythonでフレームワークはDjangoを使用しており、ソースはGitHub上にあります。
DockerHub上のCentOSイメージでアプリ実行するまでには以下の手順を踏む必要があります。
- 開発ツールをyumコマンドを使用してインストール("Development Tools", git, httpd, mysql …)
- GitHubのリポジトリよりソースを取得
- wsgi用設定ファイルを /etc/httpd/conf.d/ 配下に作成
- Python仮想環境を作成・有効化(python3 -m venv コマンドで作成)
- 必要なモジュールをpipを使用してインストール(Django, mod-wsgi…)
- Apacheを起動(systemctl start httpd.service)
上記の手順について全てをDockerFileに記述すべきなのでしょうか。
それともGitHubのリポジトリに初期セットアップスクリプトのようなものを用意し、
pipのパッケージインストールあたりからはコンテナを実行した後、docker execコマンドを利用して実行すべきなのでしょうか。
参考にしている書籍(現場で使えるDjangoの教科書)では上記手順で言うところのpipあたりからは初期セットアップスクリプトで行っていたのですが、
何故それをDockerFileに書かかずあえて別にスクリプトを用意しているのかがわかりません。
どこまでの内容をDokerFileに書くべきか教えていただきたいです。
宜しくお願い致します。
補足情報(FW/ツールのバージョンなど)
CentOS 8
Python 3.6
Django 2.2
Apache
WSGI
RDS(MySQL 8)
回答2件
あなたの回答
tips
プレビュー