Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@yh1224

Laravel: Vessel によるローカル開発用コンテナ環境を使う

More than 1 year has passed since last update.

環境

概要

Laravel のローカル開発環境を Docker Compose で動作させるための設定とショートカットコマンドを提供してくれる。

導入

インストール

$ composer require --dev shipping-docker/vessel

設定の取り込み

$ php artisan vendor:publish --provider="Vessel\VesselServiceProvider"

これにより以下が生成される。

  • docker/ 配下 ... イメージ作成のための設定
    • app/
    • mysql/
    • node/
  • docker-compose.yml
  • vessel ... コマンド

docker/ 配下はファイルがいろいろあるが、これをベースに直接カスタマイズしていくのでコミットしてしまって良いと思う。

初期化

$ bash vessel init

このコマンドでおこなわれること。

  • composer require predis/predis

    • キャッシュとセッションに Redis を使うためにインストール
  • .env の設定変更

  DB_HOST=mysql
  CACHE_DRIVER=redis
  SESSION_DRIVER=redis
  REDIS_HOST=redis
  • データベースのホストを mysql コンテナに向ける設定
  • キャッシュとセッションの保存先を Redis に向ける設定
  • ※.env.example は変更されないので、必要があれば転記してコミットする

    • vessel コマンドへの実行権限追加

例)

起動

$ ./vessel start

docker-compose up -d と同じ。デフォルトで以下のコンテナが起動する。

  • app : Ubuntu 18.04 ベース。supervisord (nginx + php-fpm)
  • mysql:5.7
  • redis:alpine

データベース名、ユーザー等は .env から取得して初回起動時に作成される。DB_USERNAME に root を指定するとユーザーを作成しようとしてエラーになるので別のものにする。

他に必要なものがあれば docker-compose.yml を編集する。

停止

$ ./vessel stop

docker-compose down と同じ。

コンテナイメージの再ビルド

Dockerfile は docker/ フォルダ配下にあるので、必要に応じて編集し、再ビルドする。

$ ./vessel build

docker-compose up -d と同じ。

ログイン

$ ./vessel exec app bash

docker-compose exec app bash と同じ。

composer コマンド実行

$ ./vessel composer (コマンド)

app コンテナで composer を実行するショートカット。

artisan コマンド実行

$ ./vessel artisan (コマンド)

app コンテナで php artisan を実行するショートカット。

4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?