1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravel開発環境構築をdockerを使って構築

Posted at

###内容
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配下にファイルを作成し、以下の記述をします。

docker-compose.yaml
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)

以上です。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?