Docker✕Laravel入門(環境構築)

投稿者:

このテキストは、Laravel8の教科書になります。
解説の内容と動作が異なる場合はは、必ずリファレンスを確認してください。

※すでにDockerがインストールされていることを前提の手順です。

laradockのリポジトリをクローン

作業ディレクトリとして、sample_laraを作成し、cdコマンドで移動します。

mkdir sample_lara
cd sample_lara

gitを利用してlaradockリポジトリからクローン(ダウンロード)します。

git clone https://github.com/LaraDock/laradock.git

クローンが完了するとsample_laraディレクトリ内にlaradockディレクトリが作成されます。

laradockの起動

cdコマンドでlaradockディレクトリに移動し、
環境設定ファイルである.env-exampleファイルをコピーし、名前を.envとします。

cd laradock
cp env-example .env

.envファイルを読み込み環境設定を行うため、名前の変更をしました。

以下コマンドにて、workspaceを起動します。
初回起動にはイメージのダウンロードなどがあるため、
10分ほどかかりますので、コーヒーでも淹れて待ちましょう

docker-compose up -d workspace

workspaceの起動確認

docker-compose ps

上記コマンドで、laradock_workspace_1という文字列があれば起動完了です。

workspaceにbashでログイン

docker exec -it --user=laradock laradock_workspace_1 bash

上記を実行すると作成したworkspace環境にログインします。

その後以下コマンドで自分のいる場所を確認します。

pwd

上記コマンドで/var/wwwが出力されれば、OKです。
もし別のディレクトリにいる場合は、以下コマンドで/var/wwwに移動して下さい。

cd /var/www

composerコマンドでプロジェクト作成

composerコマンドを利用し、laravelプロジェクトを作成します。

composer create-project laravel/laravel blog_sample --prefer-dist

少し時間がかかりますので、さきほど淹れたコーヒーを飲みながら、
上記コマンドについて説明を読んでみてください。

composerとは、PHPのパッケージ管理ツールです。
利用するパッケージ(ライブラリ)間の依存関係を解決してくれます。

上記コマンドはこのようになっています。

composer create-project laravel/laravel [プロジェクト名] --prefer-dist

プロジェクト名は自由に設定しても問題ないのですが、
毎回プロジェクト名を書き換えることが面倒なので、初回はこちらが指定したプロジェクト名を設定してください。

workspaceからbashでログアウト

プロジェクトの作成が完了したら、以下コマンドでログアウトします。

exit

ログアウトしたら、立ち上げたworkspaceを以下コマンドで停止させましょう。

docker-compose stop

laradockの設定変更

.envの修正

さきほどコピーを行った.envを修正を行います。

APP_CODE_PATH_HOSTの修正

APP_CODE_PATH_HOST=../

と記載された箇所があるので、

APP_CODE_PATH_HOST=../blog_sample

と先ほど作成したプロジェクトディレクトリを指定します。

DATA_PATH_HOSTの修正

DATA_PATH_HOST=~/.laradock/data

と記載された箇所があるので、

DATA_PATH_HOST=../data

とデータの格納場所であるディレクトリを指定します。

docker-compose.ymlの修正

MySQLのブロックに以下コードを追加する

command: --innodb-use-native-aio=0

コードを記載する場所は以下の通りである

  ### MySQL ################################################
  mysql:
    build:
      context: ./mysql
      args:
        - MYSQL_VERSION=${MYSQL_VERSION}
    environment:
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - TZ=${WORKSPACE_TIMEZONE}
    volumes:
      - ${DATA_PATH_HOST}/mysql:/var/lib/mysql
      - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
    command: --innodb-use-native-aio=0
    ports:
      - "${MYSQL_PORT}:3306"
    networks:
      - backend

この行を追加することでmysqlコンテナ内のmysqlサーバ起動に失敗を回避します。

laradockの起動

docker-compose up -d workspace nginx mysql phpmyadmin

今度は、workspaceだけではなく、nginxとmysqlとphomyadminを起動します。

上記のコマンドを実行したら、以下URLにアクセスしてください。
Windowsの方:http://localhost
MacOSの方:http://127.0.0.1

アクセスし、laravelのスタート画面が表示されてばOKです。

起動が失敗する場合

恐らく、多くのDockerコンテナを立ち上げているとポート番号(8080など)がかぶってしまっていることが問題です。

その場合は、.envファイルの修正を行います。

PMA_PORT=8081

と記載された箇所を修正します。

PMA_PORT=8888

とします。
ポート番号は、0~65535までありますので、お好きにお選びください。
しかし、ほかのサービスで使用している可能性があるため、別途お調べください。
例:ssh 22 etc…

もし、起動しない場合やうまくいかない方はコメントをください。
また、MENTA利用者は、プランにあわせた回答をご用意しますので、
MENTAメッセージにてご連絡ください。


コメントを残す

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