###内容
Laravel開発環境を構築する際に積んでしまいかなり時間を取ってしまったので、積んでしまったところを忘れないための備忘録記事です。
Dockerを使ってLaravel環境環境でLaravelのデフォルト画面、データベース接続、マイグレーションまでです。
###環境
・Laravel8.X
・docker20.10.10
・php7.X
・apache
・Mysql8.X
###ディレクトリ構成
root/
├ app(Laravelプロジェクト)/
├ docker/
│ └ Dockerfile
└ docker-compose.yaml
###1、Dockerfileの作成
まず最初はDockerfileを作成していきます、元であるベースのイメージを独自にカスタマイズするために必要なファイルです。自分で何か変えたい内容があればこのファイルに記述します。
今回dcokerディレクトリを作成して、dockerディレクトリ配下にファイルを作成します。
FROM php:8.0-apache
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
RUN apt-get update && apt-get install -y \
git \
&& docker-php-ext-install pdo_mysql
RUN sed -i 's!/var/www/html!/var/www/app/public!g' /etc/apache2/sites-available/000-default.conf
###docker-compose.yamlの作成
larabel-sample-1配下にファイルを作成し、以下の記述をします。
version: '3'
services:
app:
build: ./docker
ports:
- 80:80
volumes:
- ./app:/var/www/app
working_dir: /var/www/app
db:
platform: linux/x86_64
image: mysql:8.0
ports:
- 3306:3306
environment:
MYSQL_DATABASE: database
MYSQL_USER: user
MYSQL_PASSWORD: pass
MYSQL_ROOT_PASSWORD: password
###laravelのインストール
これまでの作業が終わったらコンテナを作成して、laravelを導入していきます。
docker compose up -d
でコンテナを立ち上げます。
コンテナが立ち上がったらdocker exec app bash
でappコンテナに入ります。
var/dump/appにいる状態で```composer create-project laravel/laravel ./
###Laravel表示確認
ここまで出来たら、ブラウザ上でlaravelのデフォルト画面が表示できます。
URL```http://localhost:80```から下記の画面が確認できたら、laravel導入完了です。(Laravel8.xのため該当バージョンのデフォルト画面が出てくるとこに注意)
![laravel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1177832/5bbee5d4-f1d0-8e9e-88f0-fc1cf95fdd8e.png)
###データベース接続確認
次にデータベース接続確認を行います。
Laravelからデータベースに接続するには、Laravel内の.envファイルに以下の設定を記述します。(docker-compose.yamlでdbコンテナに設定した値です)
```.env
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=user
DB_PASSWORD=pass
MYSQL_ROOT_PASSWORD: password
これでデータベース接続が可能なはずですので、php artisan migrate
でマイグレージョンしてみてください。
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (384.65ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (197.15ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (207.88ms)
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated: 2019_12_14_000001_create_personal_access_tokens_table (361.04ms)
以上です。