Laravelとは?Docker-compose.ymlの作成・Laravel開発環境を構築する方法

エンジニア
マネージャー
Laravelとは?
Laravelとは、phpによって記述されたアプリケーションフレームワークの事を指し、そのフレームワークの中ではセキュリティ性や拡張性、安定した運用が担保されています。
Laravelを使うとアプリケーションを速く効率的に開発する事が出来るので、phpの数あるフレームワークの中でも特に人気があります。
Docker-compose.ymlの作成
Laravelの開発環境を構築するにはDockerでLEMP環境を構築する必要があります。しかしその前にいくつか下準備が必要となってきます。まずはDocker-compose .ymlを作成する必要があります。以下のコードをご覧下さい。
1 2 3 4 5 6 7 8 9 10 11 12 |
version: '3.7' services: php: build: context: ./docker/php dockerfile: Dockerfile container_name: php volumes: - ./src:/var/www/html ports: - "8000:8000" |
Docker fileの作成
Dockerfileを作成する為に以下の様なコードをDockerfileに貼り付ける必要があります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
FROM php:8.0-fpm-buster SHELL ["/bin/bash", "-oeux", "pipefail", "-c"] ENV COMPOSER_ALLOW_SUPERUSER=1 \ COMPOSER_HOME=/composer COPY --from=composer:2.0 /usr/bin/composer /usr/bin/composer RUN apt-get update && \ apt-get -y install git unzip libzip-dev libicu-dev libonig-dev && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ docker-php-ext-install intl pdo_mysql zip bcmath COPY ./php.ini /usr/local/etc/php/php.ini WORKDIR /work |
Docker fileの作成
続いて、LEMP環境を構築する前にGitとDockerの初期設定を済ませておき、Dockerに関してはDocker Content Trustの有効化までやっておく必要があります。
Gitの初期設定では、ログインの度にGitHubアカウントの設定を行う必要性を無くす為にSSH鍵を作成しておきます。
Dockerはコンテナタイプの仮想環境を作成したり実行したりする事が出来るプラットフォームなので、アプリケーションの開発をスムーズに行うことが出来ます。ですので、Dockerの設定も必須となってきます。
そして冒頭でも述べた通り、Docker Content Trustを有効化しておく必要があります。これはなりすましや第三者による書き換えを防ぎつつ、pushやbuild等のコマンドを自動で実行してくれる機能です。セキュリティ面の事を考えるのであればこの機能も追加しておきましょう。
Laravelプロジェクトの作成
続いてLaravelプロジェクトを作成する必要があります。その際、新たにLaravelプロジェクトを作成する方法と、既に用意されているLaravelプロジェクトを活用する方法があります。
新たにLaravelプロジェクトを作成する場合には、
1 2 3 |
git clone git@github.com:ucan-lab/docker-laravel.git cd docker-laravel make create-project |
既に用意されているLaravelプロジェクトを活用する場合には、
1 2 3 4 |
git clone git@github.com:ucan-lab/docker-laravel.git git clone git@github.com:laravel/laravel.git docker-laravel/backend cd docker-laravel make init |
となります。
Laravel開発環境を構築する方法
以上で準備が完了したので、実際のコードをご覧頂きたいと思います。その際注目して頂きたいのが、「LEMP環境の構築」です。以下のコードをご覧ください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
version: "3.9" volumes: php-fpm-socket: db-store: services: app: build: context: . dockerfile: ./infra/docker/php/Dockerfile volumes: - type: volume source: php-fpm-socket target: /var/run/php-fpm volume: nocopy: true - type: bind source: ./backend target: /work/backend environment: - DB_CONNECTION=mysql - DB_HOST=db - DB_PORT=3306 - DB_DATABASE=${DB_NAME:-laravel_local} - DB_USERNAME=${DB_USER:-phper} - DB_PASSWORD=${DB_PASS:-secret} web: build: context: . dockerfile: ./infra/docker/nginx/Dockerfile ports: - target: 80 published: ${WEB_PORT:-80} protocol: tcp mode: host volumes: - type: volume source: php-fpm-socket target: /var/run/php-fpm volume: nocopy: true - type: bind source: ./backend target: /work/backend db: build: context: . dockerfile: ./infra/docker/mysql/Dockerfile ports: - target: 3306 published: ${DB_PORT:-3306} protocol: tcp mode: host volumes: - type: volume source: db-store target: /var/lib/mysql volume: nocopy: true environment: - MYSQL_DATABASE=${DB_NAME:-laravel_local} - MYSQL_USER=${DB_USER:-phper} - MYSQL_PASSWORD=${DB_PASS:-secret} - MYSQL_ROOT_PASSWORD=${DB_PASS:-secret} |
ポイントとしては、appとweb、dbの3種類のコンテナを使っている事です。これら3つを定義することによってLEMP環境を構築する事が出来ます。appとwebはアプリケーションサーバーのコンテナ、dbはデータベースサーバーのコンテナになります。
エンジニア
マネージャー
Laravelを使ってみよう
Laravelを使うことで、アプリケーション開発をスムーズに行うことが出来ます。しかしLaravelを使うにあたって、GitやDockerの設定、Docker fileの作成、AppやWeb等のコンテナの定義やLaravelプロジェクトの作成など多くの事前準備が必要です。
それに加えて、Laravelで環境構築する際にも多くのコードを必要とします。慣れないうちはテンプレートを利用してLaravelの扱いに慣れていきましょう。そうすればアプリケーション開発がもっとスムーズになるでしょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


新着案件New Job
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅)遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅)病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅)開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅)債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅)PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)