lde(Local Development Environment)
ローカル開発環境を構築するためのスケルトンリポジトリです。
既存プロジェクトにこのリポジトリの内容ダウンロードし利用することを想定しています。
利用環境
Vagrant + Ansibleの利用を想定しているおり、主にmacOSでの利用を想定しています。 ※VirtualBoxを利用する関係上、M1/M2 Macの環境は想定していません。
※VSCode + Dockerを前提としたDev containersにも対応させていますが、
Vagarnt利用時ほど開発環境としての完成度は見込んでいません。
(非エンジニア向けの動作確認環境としても利用可能という程度の想定です)
必要なもの
以下のいずれかが必要になります
Vagrantを利用する場合
Dev containersを利用する場合
- Visual Studio Code
- 拡張機能:Remote Development
- Docker Desktop
- M1/M2 Macを利用している場合は
Apple Chip
版をインストールしてください。 - Windowsを利用している場合は別途
WSL
が必要になります。
- M1/M2 Macを利用している場合は
※Remote Developmentの詳細については、以下の公式サイトを参照してください。
Visual Studio Code Remote Development
利用方法
このリポジトリのファイル一式をダウンロードし、既存のプロジェクトにファイルを追加後、
利用するローカル開発環境ごとに応じたセットアップを行います。
利用するローカル開発環境ごとのセットアップ方法は以下のとおりです。
Vagrantを利用する場合
ターミナルを起動し、以下のコマンドを実行するとローカル開発環境が開始されます。
cd ${PROJECT_ROOT}
vagrant up
※${PROJECT_ROOT}
はプロジェクトディレクトリのパスを表しています。
Vagrantの詳細な使い方については公式サイトなどを参照してください。
dev containersを利用する場合
Visual Studo Codeを起動し、プロジェクトのディレクトリを開きます、
次にF1
キーを押し、Reopen in Container
をクリックするとローカル開発環境の構築が開始されます。
dev containersの詳細な使い方は公式サイトなどを参照してください。
ローカル開発環境のサーバー情報
データベース情報
ローカル開発環境では以下の4つのデータベースが利用できます。
データベース名 | データベースユーザー名 | データベースパスワード |
---|---|---|
app_dev | app_dev | app_dev_password |
app_test | app_test | app_test_password |
app_staging | app_staging | app_staging_password |
app_prod | app_prod | app_prod_password |
※デフォルトでapp_dev
を利用するように設定されます。
利用環境ごとのデータベースのホスト名
利用している環境ごとのデータベースのホスト名は以下のとおりです。
- Vagrantを利用する場合:
localhost
- Dev containersを利用する場合:
db
インストール済み開発関連ツール
- pre-commit
- tbls
- pict
- Graphviz
- PlantUML
- d2
- Material for MkDocs
- mycli
- lizard
- osv-scanner
- Mailpit
- ※Vagrant利用時のみ
Tips
CakePHPのメール送信方法を環境変数で設定する
config/.env
に以下のようにメール送信方法の環境変数を設定します。
※以下の設定はmailtrapを使ってメールの送信テストを行う場合の設定例です。
(<username>
および<password>
は適時変更してください。)
export EMAIL_TRANSPORT_DEFAULT_URL=smtp://<username>:<password>@smtp.mailtrap.io:2525
環境変数を利用したVagrantの制御
# Webブラウザからこのドメインにアクセスした時に仮想マシンに接続できるようになります
# デフォルトでは`lde.local`に設定さてれています
# ※この設定を有効にするにはvagrant-hostsupdaterプラグインが必要になります
export VAGRAN_VM_DOMAIN="example.com"
# /etc/hostsファイルに設定する追加のホスト名
# ※この設定を有効にするにはvagrant-hostsupdaterプラグインが必要になります
export VAGRANT_VM_HOST_DB="db.example.com"
# ポートフォワード設定
# ※デフォルトではゲストマシンの80番ポートがホストマシンの8080番ポートにマッピングされています
# 「VAGRANT_FORWARD_PORT_」で始まる環境変数が設定として認識されます
# ゲストマシンのポート番号をホストマシンの別のポート番号としてマッピング
export VAGRANT_FORWARD_PORT_MARIADB="3306 => 3307"
# ゲストマシンのポート番号をそのままホストマシンのポート番号にマッピング
export VAGRANT_FORWARD_PORT_XDEBUG="9003"
# 共有ディレクトリの設定を行います
# ※デフォルトではホストマシンの「.(カレントディレクトリ)」がゲストマシンの「/vagrant」にマッピングされています。
# 「VAGRANT_SYNC_FOLDER_」で始まる環境変数が設定として認識されます
export VAGRANT_SYNC_FOLDER_DB_SCHMA_DOC="path/to/scheme => /vagrant/docs/schema"
# プロビジョニング実行時にAnsibleの追加パラメーター
# 「VAGRANT_ANSIBLE_RAW_ARGMENT_」で始まる環境変数が設定として認識されます
export VAGRANT_ANSIBLE_RAW_ARGMENT_DIFF="--diff"
# プロビジョニング実行時に実行するタグ
# 「VAGRANT_ANSIBLE_TAG_」で始まる環境変数が設定として認識されます
export VAGRANT_ANSIBLE_TAG_CAKEPHP="role_cakephp"
# プロビジョニング実行時にスキップするタグ
# 「VAGRANT_ANSIBLE_SKIP_TAG_」で始まる環境変数が設定として認識されます
export VAGRANT_ANSIBLE_SKIP_TAG_COMMON="role_common"