はじめに
naritomoと申します。
本職はインフラエンジニアを行っています。
php系について、開発環境構築方法について投稿したいと思います。
いろいろアドバイスいただけると嬉しいです。
立ち上げ概要
windows11を使用してwsl2+Ubuntu+vscode+git環境を作り、
docker-composeを使用して立ち上げるものになります。
必要なソースは以下にまとめてあります。
dockerソース
laravel10ソース
laravel9ソース
laravel8ソース
laravel6ソース
参考URL
なぜ、あえてDockerなのか?
インフラエンジニアとしてDockerから触れたほうが扱いやすく、
以下の利点を感じられたため、開発環境構築ではDockerを使用することを
推しています。
- OS問わず同じ開発環境での開発が可能
- インフラ/アプリエンジニアでのコラボがしやすい。
(具体的にはインフラ屋でOS/開発環境のベース環境を構築し、
アプリエンジニアで本来行うべき開発業務に集中できる。) - 本番Web環境で多く使用されているAWS/AzureなどのIaaSサービス
に対し、Docker資産を使用できる。
一応、本番環境展開にPaaSを使用する手はありますが、
AWS/Azureを絡めたほうが業務につながるとみています。
事前準備
windows11+wsl2+Ubuntu22+DockerCompose+vscode+gitでの環境を構築してること。
環境構築手順
ベースリポジトリをクローンする。
$ git clone https://github.com/naritomo08/laravel_docker.git laraveldocker
laravel9/10の場合
$ git clone -b php8.2 https://github.com/naritomo08/laravel_docker.git laraveldocker
$ cd laraveldocker
→フォルダ名は好きに変更してよい。
laravel6の場合
$ git clone https://github.com/naritomo08/laravelapp2.git backend
laravel8の場合
$ git clone https://github.com/naritomo08/laravelapp.git backend
laravel9の場合
$ git clone https://github.com/naritomo08/laravelapp3.git backend
laravel10の場合
$ git clone https://github.com/naritomo08/laravelapp4.git backend
後にファイル編集などをして、git通知が煩わしいときは
作成したフォルダで以下のコマンドを入れる。
rm -rf .git
環境構築用のシェルスクリプトを実行する。
$ chmod u+x build_env.sh && ./build_env.sh
ファイルパーミッションを更新する。
macでは行わなくてよい。
$ chmod u+x set_permission.sh && ./set_permission.sh
各種サイト確認する。
サイトURL
laravel
adminer(DB管理ツール)
- ログイン情報
- サーバ: laravel_db
- ユーザ名: laravel
- パスワード: password
- データベース: laravel
mailhog(メールサーバ)
コンテナ起動する方法
docker-compose.yml
が存在するフォルダーで以下のコマンドを実行する。
$ docker-compose up -d
コンテナ停止する方法
docker-compose.yml
が存在するフォルダーで以下のコマンドを実行する。
$ docker-compose stop
コンテナ削除する方法
docker-compose.yml
が存在するフォルダーで以下のコマンドを実行する。
$ docker-compose down
起動中のコンテナに入る
PHPコンテナ
$ docker-compose exec laravel_php /bin/bash
DBコンテナ
$ docker-compose exec laravel_db /bin/bash
その他
開発中に以下のコマンドを実行してください。
laravel6/8の場合
$ docker-compose exec laravel_php /bin/bash
$ cd project
*初回時以下の2つのコマンドを実施
(laravel8環境のみ上1つでよい。)
$ chmod -R a+x node_modules
$ sudo n 16.13.2
$ npm run watch
npm run watchコマンドとは
npm run watchコマンドはターミナルで実行し続け、関連ファイル全部の変更を監視します。
Webpackは変更を感知すると、アセットを自動的に再コンパイルします。
laravel9/10の場合
$ docker-compose exec laravel_php /bin/bash
$ cd project
*初回時以下のコマンドを実施
$ chmod -R a+x node_modules
$ npm run dev
npm run devコマンドとは
laravel9からはnpm run devコマンドでターミナルで実行し続け、
関連ファイル全部の変更を監視します。
Webpackは変更を感知すると、アセットを自動的に再コンパイルします。
作成したソースを流用したい場合
サイト作成したあと、以下のフォルダ内をgithubなどに保管すれば、
他の開発/本番環境へソースを持っていって利用できます。
backend
本docker環境に持っていきたい場合、
"ベースリポジトリをクローンする。"にて最初のクローンを実施したあと、
2つめのリポジトリクローン元を別途保管したソースに入れ替るか、
上記フォルダを作成してソースを入れて、
あとは手順通りに実施すれば、ひとまず立ち上がるはずです。
他環境で本ソースを使用した立ち上げ方は、
ここでは割愛いたします。
作成したソースをAWS(ECS)に展開したい場合
backendフォルダに展開されているソースについて、
以下のページを参考にAWS(ECS)へ展開することもできます。
おわりに
本記事以外にもElixir/rubyについても同様のものを上げていますので、
参照していただいてこちらにも挑戦していただければと思います。