Help us understand the problem. What is going on with this article?

LaravelとLaradockを使ったチームでの開発環境を用意する vol.2 ~Laravelインストール編~

More than 1 year has passed since last update.

LaravelとLaradockを使ったチームでの開発環境を用意する vol.2

~Laravelインストール編~

こんにちは、Dev.Satsukiです。

この記事は前回の続きですので、まだ見ていない方はまず前回記事を確認してくださいね
LaravelとLaradockを使ったチームでの開発環境を用意する vol.1 ~Laradock設定編~

前回記事が文章多すぎて自分で読み返して辛かったので、今回はシンプルに要点だけまとめるようにします。
ちょっとは読みやすくなるといいなぁ…

前回やったこと

  • プロジェクト用のディレクトリ作成
  • Laradock設定ファイル作成
  • ローカル環境を設定するためのshell script作成
  • ローカル開発環境用のDocker起動 停止

今回やること

  • Laradockでよく使うコマンドの確認
  • Laravelのをインストール
  • Laravelの設定
  • 各ローカルサーバーへのアクセス
  • laravel設定ファイルの配布準備

Docker操作に使うコマンド

//これらのコマンドはlaradockのインストールされているディレクトリで使います
// 起動 (nginx等は使いたい環境ごとに変更してください)
docker-compose up -d nginx postgres workspace redis

// 停止
docker-compose stop

// サーバーへの接続
docekr-compose exec image_name bash

Laravelのインストール

// workspaceにアクセス
docker-compose exec workspace bash
// ディレクトリを確認
ls

lsコマンドの結果がカラならOKです
ここはローカルPCのyour_laravel_projectの中身と同期しているはずです

もしここでファイルがすでに存在するようなら、.envファイルの以下の項目を見直してください

APP_CODE_PATH_HOST= 

// workspaceマシン内で
composer create-project --prefer-dist laravel/laravel ./

補足:workspaceについて

Laradockでは、Laravelのインストール・操作用のマシンがworkspaceとして用意されています。
php artisanやcomposerのコマンドを使う場合はworkspace上で行いましょう。

Laravelの設定

Laravel側の.envファイルを編集します。
デフォルトの.envファイル内のDB_HOST等を書き換えます

DB_HOSTの値などは、docker-compose.ymlのvolumesの値を設定します

volumes:
  mysql:
    driver: ${VOLUMES_DRIVER}
  percona:
    driver: ${VOLUMES_DRIVER}
  mssql:
    driver: ${VOLUMES_DRIVER}
  postgres:
    driver: ${VOLUMES_DRIVER}
  memcached:
    driver: ${VOLUMES_DRIVER}
  redis:
    driver: ${VOLUMES_DRIVER}
  neo4j:
    driver: ${VOLUMES_DRIVER}
  mariadb:
    driver: ${VOLUMES_DRIVER}
  mongo:
    driver: ${VOLUMES_DRIVER}
  minio:
    driver: ${VOLUMES_DRIVER}
  rethinkdb:
    driver: ${VOLUMES_DRIVER}
  phpmyadmin:
    driver: ${VOLUMES_DRIVER}
  adminer:
    driver: ${VOLUMES_DRIVER}
  aerospike:
    driver: ${VOLUMES_DRIVER}
  caddy:
    driver: ${VOLUMES_DRIVER}
  elasticsearch:
    driver: ${VOLUMES_DRIVER}

DB_PASSWORDなどは、Laradockディレクトリの.envに記載されている内容を設定します。

### MYSQL #################################################

MYSQL_VERSION=latest
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

設定が完了したら、次のステップに移ります。
正しく動作しているかなどは、migrateが上手く走るかどうかなどで確認してください。

php artisan migrate

各ローカルサーバーへのアクセス

では、起動した各サーバーにアクセスしてみます

// target_serverを適宜変更してください
docker-compose exec target_server bash

たとえば、postgresサーバーにアクセスする場合は以下のようになります

// target_serverを適宜変更してください
docker-compose exec postgres bash

Laravel設定ファイルの配布準備

前回使った.shディレクトリにLaravelの.envを設置して、チームメンバーが簡単に設定を完了できるようにします。
.laravel-envファイルを以下の場所に作成します。

your-project/.sh/conf/.laravel-env

続いて、前回作成したsetup.shを更新します。

SCRIPT_DIR=$(cd $(dirname $0); pwd)

cd $SCRIPT_DIR

cp -f conf/.laradock-env ../laradock-your_project/.env
cp -f conf/.**laravel**-env ../your_laravel_project/.env

最終的には.shディレクトリはこんな感じになります

ココまでで今回の作業は終わりです。おつかれさまでした。

まとめ ココまででやったこと

  • プロジェクト用のディレクトリ作成
  • Laradock設定ファイル作成
  • ローカル環境を設定するためのshell script作成
  • ローカル開発環境用のDocker起動 停止
  • Laradockでよく使うコマンドの確認
  • Laravelのをインストール
  • Laravelの設定
  • 各ローカルサーバーへのアクセス
  • laravel設定ファイルの配布準備

ここまでくれば、自分のPCにはLaradockの開発環境がすでに存在しているハズです。

次回記事はチームメンバーがローカル環境をセットアップする場合の手順についてです。

デベロ葉サツキ (@dev_satsuki) | Twitter

Why do not you register as a user and use Qiita more conveniently?
  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
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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