既にあるLaradock環境をそのままに複数のLaradock環境を構築する(Windows)

既にあるLaradock環境をそのままに複数のLaradock環境を構築する(Windows)

Laradock便利ですよね。いろいろ入ってて。

そんな便利なLaradockなんで色々なプロジェクトで使われることも多いはず。

そしてエンジニアも色々なプロジェクトで使われることも多いはず(笑)。

すでに別プロジェクトのLaradock環境が存在するPCで、別プロジェクトの開発も依頼された時に既存環境と切り分けてもう1個作る、そんなよくある話。

前提

  • OSはWindows
  • 複数Laradock環境の同時起動は考えていない
  • ひとつのLaradock環境に複数プロジェクト入れるのではなく1プロジェクト1Laradockでやる

既存Laradockプロジェクトのお引越し

  1. まずは既存のフォルダ構成を変更する。

    C:\docker\laradock
    C:\docker\sources

    もとのフォルダ構成がこんな感じだとしたら…

    C:\docker\project1\laradock
    C:\docker\project1\sources

    こう変更。

  2. 共有フォルダ設定を変更する。

    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"
      ],
    :

    こんな感じで直す。

  3. 既存プロジェクトのデータ保存先を変更する。

    C:\docker\project1\laradock\.env
    :
    # Choose storage path on your machine. For all storage systems
    DATA_PATH_HOST=~/.laradock/data
    :

    上記の.envファイルを、

    C:\User\[user]\AppData\Roaming\Docker\settings.json
    :
    # Choose storage path on your machine. For all storage systems
    DATA_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コンテナを起動している場合は停止しておくこと!

  1. まずは新しいプロジェクト用のフォルダを作成。

    C:\docker\project2
  2. 作成したフォルダにLaradockをクローン。

    C:\???\???> cd C:\docker\project2
    C:\docker\project2> git clone https://github.com/LaraDock/laradock.git laradock

    これでプロジェクトフォルダの下に「laradock」フォルダが生成される。

  3. クローンした新しい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/
  4. コンテナを生成。

    C:\docker\project2\laradock> docker-compose up -d nginx mysql workspace

    コマンド実行後、ファイル共有の確認メッセージが数回出るので「Share it」をクリックする。

  5. workspaceにログインして、laravelをインストールする。(/var/www直下に)

    C:\???\???> docker exec -it laradock_workspace_1 bash
    # cd /var/www
    # composer create-project --prefer-dist laravel/laravel .

これでプロジェクトの追加は終わり。

Laravelインストール後localhost画面

追加したプロジェクトでも、localhostがちゃんと表示された!

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のSEを経て、独立。 ここ数年はWEB以外の仕事をしていたため、割と本気で勉強中。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください