laradockでの環境構築の際に2日も無駄にしてしまったので備忘録として記載します。
laradockのインストール
ご自身のパソコンにお好きな名前でフォルダを作成し、その中にlaradockを落としてください。
※事前にdocker,gitなどのインストールは済ませた状態です。
今回はデスクトップに新しいフォルダを作成しています。
ターミナルを開いてくださいコマンドを実行してください
今回TESTというフォルダを作成しTEST_APPという名前で作成します。
$ cd Desktop
$ mkdir TEST
$ cd TEST
TESTフォルダにlaradockをローカル環境に落としてください
$ git clone https://github.com/laradock/laradock.git
環境設定
laradockファイルの中のenv.exampleというファイルをコピーして.envというファイルを作成してください。
そして.envファイルの中の一部を開発環境に合わせて書き換えます。
APP_CODE_PATH_HOST=../TEST_APP
PHP_VERSION=7.4
PMA_USER=test
PMA_PASSWORD=test
PMA_ROOT_PASSWORD=test
MYSQL_VERSION=5.7
MYSQL_DATABASE=test
MYSQL_USER=test
MYSQL_PASSWORD=test
MYSQL_ROOT_PASSWORD=test
dcokerの起動
dockerアプリを起動した状態で必ずlaradock直下で起動してください
$ docker-compose build --no-cache mysql
起動しようとするとこのようなエラーが出ます。
ERROR [mysql internal] load metadata for docker.io/library/mysql:5.7
mysqlのイメージ起動に失敗しています。
その場合は
①
laradock
├── mysql
├── docker-entrypoint-initdb.d
└── Dockerfile ←こちらを修正します。
└── my.cnf
こちらのファイルの同様な記述が書いてある箇所を以下の内容に修正してください。
$ FROM --platform=linux/x86_64 mysql:${MYSQL_VERSION}
②
laradock
├── .devcontainer
~~~~省略~~~~~~
└── docker-compose.yml ←こちらを修正します。
### MySQL ################################################
mysql :
├── build :
├── platform : linux/x86_64 //buildと同じ階層にこの行を追加してください。
先ほどのmysqlイメージの起動コマンドを再実行してください。
そうしますと起動に成功しますので、以下のコマンドを実行してdockerを起動してください
$ docker-compose up -d nginx mysql phpmyadmin
Laravelのインストール
以下のコマンドを実行して作業場所に移動します
$ docker-compose exec --user=laradock workspace bash
laravelインストールします。今回はversion8を用いたいと思います。
composer create-project laravel/laravel TEST_APP "8.*"
こちらの内容になっているか確認してください。
TEST
├── laradock
└── TEST_APP
Laravelの環境設定
laravelの.envファイルを修正していきます。
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=任意の値
DB_DATABASE=test
DB_USERNAME=test
DB_PASSWORD=test
確認できたら localhostにアクセスして起動ができているか確認してください。(http://localhost/)
この画面が表示されていたら成功です。おめでとう。
続いてphpmyadminにアクセスします。
portの番号はご自身の設定を確認してアクセスしてください。
(http://localhost:任意のポート番号)
この画面が表示されたら成功です。おめでとう
サーバ名:mysql
ユーザ名:test
パスワード:test
ログインまで試してみてください。
あとがき
間違いなどがありましたら気軽にご指摘ください。
まだまだ未熟プログラマーですのでお手柔らかにお願いします。