#どんな記事
Docker上でLaravel環境を構築するための記事
#こんな人向け
・とりあえずLaravelを使いたいけど、ローカル環境は汚したくないのでDockerを使いたい人
・「細けぇことはいいんだよ!とりあえずコード書かせてくれよ!」という人向け
#準備
DockerやDocker-composeなどのインストールは終わっている状態
#ディレクトリ構成
下記の構成に沿ってあらかじめフォルダを作成します
「sample_docker_laravel」の部分は作りたいアプリ名に変更してください
#docker-compose.ymlの作成
version: '3'
services:
app:
ports:
- "80:80"
build: ./docker/app
container_name: laravel_app
volumes:
- ./src:/var/www/html
db:
image: mysql:5.7
container_name: laravel_db
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: laravel_db
MYSQL_USER: laravel_user
MYSQL_PASSWORD: laravel_pass
TZ: 'Asia/Tokyo'
command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
volumes:
- ./docker/db/data:/var/lib/mysql
- ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf
ports:
- 3306:3306
#Dockerfileの作成
FROM php:7.4-apache
ADD php.ini /usr/local/etc/php/
ADD 000-default.conf /etc/apache2/sites-enabled/
RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php && ln -s /usr/bin/composer.phar /usr/bin/composer
RUN apt-get update \
&& apt-get install -y \
git \
zip \
unzip \
vim \
libpng-dev \
libpq-dev \
&& docker-php-ext-install pdo_mysql
RUN mv /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled
RUN /bin/sh -c a2enmod rewrite
#000-default.confの作成
app_nameの部分は作りたいアプリ名にしてください
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/app_name/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/app_name/public>
AllowOverride All
</Directory>
</VirtualHost>
#php.iniの作成
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
#my.cnfの作成
[mysqld]
character-set-server=utf8
#ターミナルでアプリのディレクトリへ移動
$ cd app_name
#Dockerイメージを作成する(ちょっと時間かかります)
$ docker-compose build
#Dockerをバックグランドで起動
$ docker-compose up -d
#コンテナに入る
$ docker exec -i -t laravel_app bash
#laravelアプリを作成
app_nameをアプリ名に変更して実行します
$ composer create-project --prefer-dist laravel/laravel app_name "6.18.*"
#アプリのディレクトリへ移動
$ cd app_name
#ストレージの権限を変更
$ chmod 777 -R storage/
$ php artisan key:generate
#ブラウザで起動確認
Localhost
#Dockerの起動をストップする場合は
$ docker-compose stop
#参考
Laravel学習帳
非常に丁寧に説明されており、大変参考にさせて頂きました。