LoginSignup
5
4

php/laravelをdocker環境で立ち上げてみる。

Last updated at Posted at 2022-12-04

はじめに

naritomoと申します。

本職はインフラエンジニアを行っています。
php系について、開発環境構築方法について投稿したいと思います。

いろいろアドバイスいただけると嬉しいです。

立ち上げ概要

windows11を使用してwsl2+Ubuntu+vscode+git環境を作り、
docker-composeを使用して立ち上げるものになります。

必要なソースは以下にまとめてあります。

dockerソース

laravel10ソース

laravel9ソース

laravel8ソース

laravel6ソース

参考URL

Elixirをdocker環境で立ち上げてみる。

なぜ、あえて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についても同様のものを上げていますので、
参照していただいてこちらにも挑戦していただければと思います。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4