ローカル開発環境を構築するためのスケルトンリポジトリです。
既存プロジェクトにこのリポジトリの内容をダウンロードし、利用することを想定しています。
Vagrant + Ansibleの利用を想定しており、主にmacOSでの利用を想定しています。
※(注記)VirtualBoxを利用する関係上、M1/M2 Macの環境は想定していません。
※(注記)VSCode + Dockerを前提としたDev containerにも対応させていますが、
Vagrant利用時ほど開発環境としての完成度は見込んでいません。
(非エンジニア向けの動作確認環境としても利用可能という程度の想定です)
以下のいずれかが必要になります。
- Visual Studio Code
- 拡張機能:Remote Development
- Docker Desktop
- M1/M2 Macを利用している場合は
Apple Chip版をインストールしてください。 - Windowsを利用している場合は別途
WSLをインストールしてください。
- M1/M2 Macを利用している場合は
※(注記)Remote Developmentの詳細については、以下の公式サイトを参照してください。
Visual Studio Code Remote Development
このリポジトリのファイル一式をダウンロードし、既存のプロジェクトにファイルを追加後、
利用するローカル開発環境ごとに応じたセットアップを行います。
利用するローカル開発環境ごとのセットアップ方法は以下のとおりです。
ターミナルを起動し、以下のコマンドを実行するとローカル開発環境が開始されます。
cd ${PROJECT_ROOT} vagrant up
※(注記)${PROJECT_ROOT}はプロジェクトディレクトリのパスを表しています。
Vagrantの詳細な使い方については公式サイトなどを参照してください。
Visual Studo Codeを起動し、プロジェクトのディレクトリを開きます、
次にF1キーを押し、Reopen in Containerをクリックするとローカル開発環境の構築が開始されます。
Dev containerの詳細な使い方は公式サイトなどを参照してください。
ローカル開発環境では以下の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 containerを利用する場合:
db
Vagrant利用時は以下のツールがインストールされています。
- pre-commit
- tbls
- runn
- pict
- Graphviz
- PlantUML
- d2
- Material for MkDocs
- mycli
- osv-scanner
- Task
- Mailpit
- Meilisearch
config/.envに以下のようにメール送信方法の環境変数を設定します。
※(注記)以下の設定はmailtrapを使ってメールの送信テストを行う場合の設定例です。
(<username>および<password>は適時変更してください。)
export EMAIL_TRANSPORT_DEFAULT_URL=smtp://<username>:<password>@smtp.mailtrap.io:2525
## ------------ ## 仮想マシンの設定 ## ------------ # 仮想マシン名 export VAGRANT_VM_NAME=example.local # 仮想マシンのCPU export VAGRANT_VM_CPU=1 # 仮想マシンのメモリ export VAGRANT_VM_MEMORY=2048 # 仮想マシンのIPアドレス export VAGRANT_IP_ADDRESS="192.168.56.10" ## ------------ ## ホスト名の設定 ## ------------ # Webブラウザからこのドメインにアクセスした時に仮想マシンに接続できるようになります # デフォルトでは`lde.local`に設定さてれています # ※(注記)この設定を有効にするにはvagrant-hostsupdaterプラグインが必要になります export VAGRANT_VM_DOMAIN="example.com" # /etc/hostsファイルに設定する追加のホスト名 # ※(注記)この設定を有効にするにはvagrant-hostsupdaterプラグインが必要になります export VAGRANT_VM_HOST_WWW="www.example.com" export VAGRANT_VM_HOST_MAILPIT="mail.example.com" export VAGRANT_VM_HOST_PHPREDISADMIN="cache.example.com" export VAGRANT_VM_HOST_MEILISEARCH="search.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_SCHEMA_DOC="path/to/scheme => /vagrant/docs/schema" ## ------------ ## プロビジョニング(Ansible)の設定 ## ------------ # プロビジョニング実行時にAnsibleの追加パラメーター # 「VAGRANT_ANSIBLE_RAW_ARGUMENT_」で始まる環境変数が設定として認識されます export VAGRANT_ANSIBLE_RAW_ARGUMENT_DIFF="--diff"
ディレクトリ直下にprovision.ymlというファイルを作成し、以下のように設定を記述することで、
Vagrantのプロビジョニング時の設定を制御できます。
各設定項目の詳細は以下のとおりです。
tags:ansible-playbookコマンドの--tagsパラメーターに設定するタグを指定する。skip_tags:ansible-playbookコマンドの--skip-tagsパラメーターに設定するタグを指定する。role_update:ansible-galaxyコマンドでインストールしたロールを更新するかどうかを指定する。extra_var:ansible-playbookコマンドの--extra-varsパラメーターに設定する変数を指定する。
--- ## ロールのインストール/更新 ## ------------------ # role_update: true ## 適用するタグ ## ------------------ # tags: # - custom_script # - role_backup # - role_webfont # - verify ## スキップするタグ ## ------------------ # skip_tags: # - verify ## 追加/上書きする変数 ## ------------------ # extra_var: # php_version: 8.4