(Mac Win10 pro)Laradockを利用したインストール
laradockのリポジトリのクローン
MyDockerディレクトリに移動します。
cd ~/MyDocker
laravel練習用のディレクトリとして laravel_sampleを作成し、移動します。
mkdir laravel_sample
cd laravel_sample
gitを利用して
git clone https://github.com/LaraDock/laradock.git
としてlaradockのリポジトリからクローン(ダウンロード)します。
laradockのcompose
正しくクローンが完了すると、laravel_sampleディレクトリ内にlaradockディレクトリが作成されます。
cd laradock
上記のコマンドでlaradockディレクトリに移動し、
環境設定ファイルを
cp env-example .env
上記のコマンドで作成します。
(cp は bashコマンドの一つで、ファイルをコピーするコマンドです。
ここではenv-exampleというファイルをコピーして、
「.env」という名前で保存しています。)
その後
docker-compose up -d workspace
として、新たなワークスペースを立ち上げ(conpose)ます。
laradockの初回起動の際にはイメージのダウンロードのために
10分程度かかりますので気長に待ちましょう。
laradockの起動確認
docker-compose ps
上記のコマンドで laradock_workspace_1 という環境があれば起動成功です。
laradockにbashでログイン
docker exec -it --user=laradock laradock_workspace_1 bash
を実行すると、作成したlaradockの環境にログインします。
(上記のコマンドでは、--userオプションで、 ログインするユーザーをrootからlaradockに変更しています。)
pwd
上記のコマンドを実行し /var/www にいればOKです。 もし別のディレクトリにいる場合には
cd /var/www
上記のコマンドで移動しておきましょう。
laravelでプロジェクト作成
composer create-project laravel/laravel [プロジェクト名] --prefer-dist [バージョン指定]
上記のコマンドで、作成した環境内にlaravelプロジェクトを作成することができます。
今回は
composer create-project laravel/laravel sample_app --prefer-dist "5.5.*"
として、
- プロジェクト名: sample_app
- バージョン: Laravel 5.5 の最新版
でプロジェクトを作成しましょう。
laradockの停止
プロジェクトの作成が完了したら
exit
上記のコマンドで一旦docker環境を抜けてから、
docker-compose stop
上記のコマンドで一旦laradock環境を停止しましょう。 (laradockの設定変更を完了後、再度起動します。 docker-compose stopは、コンテナを削除せずに一旦停止するコマンドです。)
laradockの設定変更
.envの修正
laradockフォルダ内の.envを修正します。
APP_CODE_PATH_HOSTの修正
APP_CODE_PATH_HOST=../
と書かれた箇所があるので
APP_CODE_PATH_HOST=../sample_app
としましょう。
DATA_PATH_HOSTの修正
DATA_PATH_HOST=~/.laradock/data
と書かれた箇所があるので
DATA_PATH_HOST=../data
としましょう。
MYSQL_VERSIONの修正
さらに
MYSQL_VERSION=latest
と書かれた箇所があるので
MYSQL_VERSION=5.7
に変更しましょう。
docker-compose.ymlの修正
docker-compose.yml内の
### 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
ports:
- "${MYSQL_PORT}:3306"
networks:
- backend
という箇所について
### 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
とcommand行を追加しておきましょう。 (Windowsの場合、上記の追記がないとmysqlコンテナ内のmysqlサーバ起動に失敗する場合があります。)
laradockの(再度)起動
docker-compose up -d workspace nginx mysql phpmyadmin
上記のコマンドを実行し 各コンテナが立ち上がった時点で
にアクセスしてみましょう。
laravelのスタート画面が表示されればOKです。
起動に失敗する場合: PMA_HOSTの修正
laradockのバージョンによっては、phpmyadminとworkspaceで利用するポート番号8080の重複により起動に失敗する場合があります。
その場合、.envに
PMA_PORT=8080
と書かれた箇所があるので
PMA_PORT=8888
としましょう。
その上で、docker-compose downしたあと 再度
docker-compose up -d workspace nginx mysql phpmyadmin
で起動してください。
なお、上記を実行した場合、以下のphpmyadminへのアクセスは8888ポートを利用してください。
phpmyadminへのアクセス
phpmyadminは
からアクセス可能です。
- サーバ: mysql
- ユーザ名: default
- パスワード: secret
でログインすることが可能です。
defaultというDBがlaravelで利用するDBとなります。