【GCE】Dokku に Laravel 環境を作る


Dokku のお手軽さが楽しくなってしまい、 Laravel も Dokku で運用したくなったのでメモ

Laravel プロジェクトのインストールと前準備

Laravel のインストール

composer のインストールについては「Laravel 4.2 Laravelクイックスタート」をみてください。

composer を使って Laravel をインストールする

bash
composer create-project laravel/laravel <プロジェクト名> --prefer-dist

APP_KEY の作成

bash
cd <プロジェクト名> # プロジェクトディレクトリに移動
php artisan key:generate 

/<プロジェクトディレクトリ>/.env に記述されている base64: から始まるキーをコピーしておく

Dokku をさわる

GCE に接続する

ssh で GCE に接続する

bash
ssh -i <PATH_TO_PRIVATE_KEY> <USERNAME>@<EXTERNAL_IP_ADDRESS>

もしくは、 gcloud を利用している場合は
「インスタンス>リモートアクセス>gcloudコマンドを表示」からコピペして接続

GCE に Dokku アプリを作成する

laravel-dokku-app って名前のプロジェクトを作ることにする

bash
dokku apps:create laravel-dokku-app

APP_KEY を Dokku に設定する

bash
dokku config:set laravel-dokku-app <APP_KEY>

APP_KEY => 「APP_KEY の作成」の項目でコピーしたやつをコピペする

Procfile と BUILDPACK_URL を設定する

Dokku は何も設定しないと Node.js プロジェクトと認識されるらしいので、
PHP を扱うために ProcfileBUILDPACK_URL とかいうやつの設定をする

Procfile の作成

ローカル環境の Laravel プロジェクトのルートでやる

bash
echo 'web: vendor/bin/heroku-php-apache2 public/' >> Procfile

BUILDPACK_URL の設定

GCE サーバー内でやる

bash
dokku config:set laravel-dokku-app BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-php

Laravel を Dokku にデプロイする

bash
git init
git add .
git commit -m "first deploy"
git remote add dokku dokku@<外部IPアドレス>:laravel-dokku-app
git push dokku master

外部IPアドレス => インスタンス>ネットワークインターフェース>外部 IPの下にある数字をコピペ

おわり

メモ: ポートを指定する場合はこうする

bash
git remote add dokku ssh://dokku@<外部IPアドレス>:<ポート番号>/laravel-dokku-app

参考

How to deploy Laravel app on Dokku
https://jiegersblog.blogspot.com/2017/06/how-to-deploy-laravel-app-on-dokku.html

setting permissions problem
https://github.com/dokku/dokku/issues/353

[Laravel5.5] APP_KEY の行方を追う
https://qiita.com/yk2220s/items/dcbf54c6d1f33a0cb06f