Laradock便利ですよね。いろいろ入ってて。
そんな便利なLaradockなんで色々なプロジェクトで使われることも多いはず。
そしてエンジニアも色々なプロジェクトで使われることも多いはず(笑)。
すでにLaradock環境が存在するPCで、別プロジェクトの開発も依頼された時に既存環境と切り分けてLaradock環境をもう1個作る、そんなよくある話。
前提
- OSはWindows
- 複数Laradock環境の同時起動は考えていない
- ひとつのLaradock環境に複数プロジェクト入れるのではなく1プロジェクト1Laradockでやる
手順
大まかな手順は以下の通り。
既存Laradockプロジェクトのお引越し
-
まずは既存のフォルダ構成を変更する。
C:\docker\laradock C:\docker\sources
もとのフォルダ構成がこんな感じだとしたら…
C:\docker\project1\laradock C:\docker\project1\sources
こう変更。
-
共有フォルダ設定を変更する。
C:\User\[user]\AppData\Roaming\Docker\settings.json
:"filesharingDirectories": [ "C:\\Users\\[user]\\.laradock\\data\\mysql", "C:\\docker\\laradock\\logs\\nginx", "C:\\docker\\laradock\\mysql\\docker-entrypoint-initdb.d", "C:\\docker\\laradock\\nginx\\sites", "C:\\docker\\laradock\\nginx\\ssl", "C:\\docker\\laradock\\php-fpm\\php7.3.ini", "C:\\docker\\laradock\\php-worker\\supervisord.d", "C:\\docker\\sources" ],
:上記のsettings.jsonファイルを、
C:\User\[user]\AppData\Roaming\Docker\settings.json
:"filesharingDirectories": [ "C:\\Users\\[user]\\.laradock\\data\\mysql", "C:\\docker\\project1\\laradock\\logs\\nginx", "C:\\docker\\project1\\laradock\\mysql\\docker-entrypoint-initdb.d", "C:\\docker\\project1\\laradock\\nginx\\sites", "C:\\docker\\project1\\laradock\\nginx\\ssl", "C:\\docker\\project1\\laradock\\php-fpm\\php7.3.ini", "C:\\docker\\project1\\laradock\\php-worker\\supervisord.d", "C:\\docker\\project1\\sources" ],
:こんな感じで直す。
-
既存プロジェクトのデータ保存先を変更する。
C:\docker\project1\laradock\.env
: # Choose storage path on your machine. For all storage systemsDATA_PATH_HOST=~/.laradock/data
:上記の.envファイルを、
C:\docker\project1\laradock\.env
: # Choose storage path on your machine. For all storage systemsDATA_PATH_HOST=.laradock/data
:こんな感じで直す。
一旦、既存プロジェクトの動作を確認してみる
既存のLaradockフォルダをプロジェクトフォルダにぶち込んで、ひと通り設定を変更したけど動くのだろうか?
試しに起動してみると…
- docker-compose up → OK
- localhostでの表示 → NG
ありゃ?起動はできたけど表示でエラーになっちゃった。
あぁそうか!データの保存先変更してたんだった。
もう一度migration実行しないとデータベースがないや。
> docker exec -it laradock_workspace_1 bash
workspaceにログインして…
# php artisan migrate:refresh --seed
migration実行。
再度localhostを表示するとエラーなく表示された!
- docker-compose up → OK
- localhostでの表示 → OK
- Xdebugによるデバッグ → OK
無事、既存プロジェクトの場所を移動できたっぽい。
新規Laradockプロジェクトの作成
ここまで来たら、普通にLaradockプロジェクト作るだけなんだけど、一応手順。
※ インストールする前に、既存Laradockコンテナを起動している場合は停止しておくこと!
-
まずは新しいプロジェクト用のフォルダを作成。
C:\docker\project2
-
作成したフォルダにLaradockをクローン。
C:\???\???>
cd C:\docker\project2
C:\docker\project2>git clone https://github.com/LaraDock/laradock.git laradock
これでプロジェクトフォルダの下に「laradock」フォルダが生成される。
-
クローンした新しいLaradockの.envファイルを作成する。
C:\docker\project2>
cd laradock
C:\docker\project2\laradock>copy env-example .env
既存プロジェクトで変更したように、データ保存先を変更する。ついでに共有フォルダ設定もやっちゃう。
C:\docker\project2\laradock\.env :
DATA_PATH_HOST=.laradock/data
:APP_CODE_PATH_HOST=../sources/
-
コンテナを生成。
C:\docker\project2\laradock>
docker-compose up -d nginx mysql workspace
コマンド実行後、ファイル共有の確認メッセージが数回出るので「Share it」をクリックする。
-
workspaceにログインして、laravelをインストールする。(/var/www直下に)
C:\???\???>
docker exec -it laradock_workspace_1 bash
#
cd /var/www
#composer create-project --prefer-dist laravel/laravel .
これでプロジェクトの追加は終わり。
追加したプロジェクトでも、localhostがちゃんと表示された!