Python

Django, Vue, Vuetify, MySQL, PHPMyAdmin環境をDocker Desktopで作成する

現在の現場でタイトルに挙げた Django, Vue, Vuetify を使用しているのですが、学習用の環境が自分のPCでも欲しくなってきたので、Docker Desktopを使用して環境作成に挑戦してみたいと思います。

調査しながら作成するので、本当に出来上がるかどうかは今の時点ではわかっていません w

まずは、環境とする主なフレームワークの簡単な説明をしておきます。

  • 「Django」はPythonでできたWEBアプリ用のフレームワークです。
  • 「Vue」はユーザーインターフェースの構築のための JavaScript フレームワークです。
  • 「Vuetify」はWebアプリケーションのUIを設計できるCSSフレームワークの一種です。 VuetifyはJavaScriptフレームワークであるVue.jsに対応しています。

Docker Desktopで環境作成

まずは Docker Desktopを起動しておきます。

次にWSL上にインストールしている Ubuntu を起動します。
起動方法は Windows PowerShell を起動し、上部メニューにある下向きの三角マークをクリックし、Ubuntu を選択すればOKです。

プロジェクトディレクトリの作成

私の場合は、過去にLarabel のプロジェクトなどを作成時に使用した source ディレクトリに移動し、今回のプロジェクト用のディレクトリ「django-challenge」を作成し、中に移動します。

移動したら、backend、frontend ディレクトリを作成します。

ディレクトリ構成は以下のようになる予定。

django-challenge/
├── backend/ ←★ディレクトリ作成
│ ├── Dockerfile ←★ファイル作成
│ ├── db.sqlite3
│ ├── djangochallenge
│ ├── manage.py
│ └── requirements.txt ←★ファイル作成
├── docker-compose.yml ←★ファイル作成
├── my.cnf ←★ファイル作成
└── frontend/ ←★ディレクトリ作成
├── Dockerfile ←★ファイル作成
├── README.md
├── babel.config.js
├── dist
├── index.html
├── jsconfig.json
├── node_modules
├── package-lock.json
├── package.json ←★ファイル作成
├── public
├── src
└── vite.config.js

1.各種ファイルの作成

必要な Dockerfile などのファイルをディレクトリ内に作成していきます。
私は以下のように、touch コマンドを使って作成しました。

1-1.backend/Dockerfile

以下の内容で Dockerfile を作成し、プロジェクトフォルダへ設置します。

1-2.backend/requirements.txt

requirements. txt とは、 pip install コマンドでインストールするパッケージ一覧を記述したファイルのことです。

1-3.backend/requirements.txt

フロントエンド用のDockerfileを以下の内容で作成します。

1-4.frontend/package.json

package.jsonはNode.jsプロジェクトにおける依存関係管理やスクリプトの定義に必要なファイルです。 外部パッケージの管理、バージョンの指定、プロジェクトの情報の記述など、プロジェクトの一貫性と管理を助ける重要な役割を果たします。

1-5.my.cnf

プロジェクトルート (django-challenge/) に my.cnf ファイルを作成し、以下の内容を記述します。
同時接続数の設定をおこなっておきます。

1-6.phpMyAdmin、MySQLのDockerfile

phpMyAdminは公式のイメージをそのまま使用するため、 Dockerfile は不要です。

MySQL の Dockerfile は、カスタマイズが必要ない場合は不要です。
公式のMySQLイメージをそのまま使用することができるため、 docker-compose.yml ファイルで直接イメージを指定し、必要な環境変数を設定するだけで十分とのことです。

2.docker-compose.yml の作成

同様に、以下の内容で docker-compose.yml を作成します。

3.イメージのビルド

ターミナルから以下コマンドを実行します。

4.コンテナの起動

ターミナルから以下コマンドを実行します。

4-1.Docker Desktopの様子

ここでDocker Desktopを見ると、以下のようになっていれば、コンテナの作成成功です。

5.Djangoアプリケーションの作成

Djangoアプリケーションを作成します。
コマンドラインで下記コマンドを実行します。

「djangochallenge」は今回のプロジェクト名です。
ちなみにハイフンをつけたらバリデーションエラーが出たので削除しました。

http://localhost:8000/ にアクセスし、下記画面が表示されれば成功です。

6.Vueプロジェクトの作成

まずはディレクトリの移動

プロジェクトの作成

ここでの「.」(ドット)は現在のディレクトリ(つまり django-challenge/frontend)にプロジェクトを作成することを意味します。

Vue CLIがプロジェクトの設定を尋ねてきます。必要に応じて選択し、プロジェクトの作成を進めます。

1.カレントディレクトリにプロジェクトを作成しますか? → Yes

2.プリセットを選んでね → Manually select features(手動)

更にオプションが選択できるので、ひとまず
・Babel
・Router
・Vuex
・Linter / Formatter
を選択する。
説明にも書いていますが、スペースキーを押すことで選択することができます。

Vueの2系統と3系統が選べるので、ここは当然「3系統」を選択

routerでhistoryモードを使用するかを聞かれているので、Yesを選択
ちなみに意味はよくわかりませんでした。。。。

Linter / formatterの設定を選択する質問。
ESLint + Standard config を選択。

追加の Lint 機能を選択する質問で、Lint on saveを選択
これも意味はよくわかりませんでした。。。。

Babel、ESLint などの設定ファイルをどこに置くかを尋ねる質問で、In dedicated config filesを選択。

今回の設定を将来のプロジェクトで使用するためのプリセットとして保存するかどうかを尋ねる質問で、Nを選択

全ての質問に回答後、インストールが始まります。

7.Vuetifyのインストール

プロジェクトが作成されたら、Vuetifyをインストールします。

こちらでもどのプリセットを選択するか聞かれるので
・Vuetify 3 - Vite (preview) を選択。

なお、Vueの公式がViteを使用することを推奨しているとのことです。

nightly buildをインストールするかを尋ねられるので、No を選択。

経過画面は以下のようになります。

コンテナを起動します。

フロントエンド用のディレクトリに移動し、vue用のサーバの起動を行います。
これは毎回必要な重要なコマンドです。

なぜかローカルでのマッピングされているポート番号が4173となっているので、
http://localhost:4173/ にアクセスします。
どこで設定されているのかは、今後調査してみます。

さらになぜか「Welcome to the Vuetify 3 Beta」と表示されていますが、Vuetify3にアクセスできました。

8.phpMyAdminの確認

最後にphpMyAdminの確認です。

docker-compose.yml にも書きましたが、アクセスするURLは、http://localhost:8080/ です。

docker-compose.yml に記述したパスワードでログインしてみます。(ユーザはデフォルトのROOTユーザで)

無事、MySQLにも接続できるようになっているようです。
よしよし。

環境作成はひとまずここまでです。

関連するかもしれないポスト

【Python】Windows10とMac環境にPython3をインストールする方法

-Python
-, , , ,