0
0

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 3 years have passed since last update.

Docker-Laravelローカル環境を構築(Mac)

Posted at

どんな記事

Docker上でLaravel環境を構築するための記事

こんな人向け

・とりあえずLaravelを使いたいけど、ローカル環境は汚したくないのでDockerを使いたい人
・「細けぇことはいいんだよ!とりあえずコード書かせてくれよ!」という人向け

準備

DockerやDocker-composeなどのインストールは終わっている状態

ディレクトリ構成

下記の構成に沿ってあらかじめフォルダを作成します
「sample_docker_laravel」の部分は作りたいアプリ名に変更してください
image.png

docker-compose.ymlの作成

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の部分は作りたいアプリ名にしてください

000-default.conf
<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の作成

php.ini
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"

my.cnfの作成

my.cnf
[mysqld]
character-set-server=utf8

ターミナルでアプリのディレクトリへ移動

$ cd app_name

Dockerを起動状態しておく(忘れないように)

image.png

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
image.png

Dockerの起動をストップする場合は

$ docker-compose stop

参考

Laravel学習帳
非常に丁寧に説明されており、大変参考にさせて頂きました。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?