PHP7.4のLaravel開発環境を、Docker-Composeで作って、Laravelの新規プロジェクトを作成して起動してみるところまで確認してみます。
スポンサーリンク
環境
この記事を書くにあたって使用した環境です。どれも、2020年7月時点の最新バージョンを使用しているハズ。
名称 | バージョン |
---|---|
docker | 19.03.1 |
docker-compose | 1.24.1 |
PHP | 7.4 |
Apache | 2.4.38 |
Laravel | 7.21.0 |
フォルダ構成
今回は、次のようなフォルダ構成にします。
[Project_ROOT]
├ docker
│ └ web
│ ├ apache
│ │ └ 000-default.conf
│ ├ php
│ │ └ php.ini
│ └ Dockerfile
├ mysql
│ ├ data
│ └ initdb
└ docker-compose.yml
docker-compose.yml
version : "3"
services:
web:
container_name: web
build: ./docker/web
ports:
- 80:80
privileged: true
volumes:
- ./server:/var/www/html
db:
image: mariadb
restart: always
ports:
- 3307:3306
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/initdb:/docker-entrypoint-initdb.d
environment:
- MYSQL_ROOT_PASSWORD=pwd
- MYSQL_DATABASE=test
- MYSQL_USER=user
- MYSQL_PASSWORD=pwd
adminer:
image: adminer
restart: always
ports:
- 8080:8080
スポンサーリンク
Dockerfile (PHP+Apache)
docker/web
にwebコンテナ 構築用の「Dockerfile」を作成します。
PHP+Apacheのイメージをベースに、各種ライブラリとComposer、Laravelをインストールします。
FROM php:7.4-apache
COPY ./php/php.ini /usr/local/etc/php/
COPY ./apache/*.conf /etc/apache2/sites-enabled/
RUN apt-get update \
&& apt-get install -y zlib1g-dev libpq-dev mariadb-client unzip libzip-dev\
&& docker-php-ext-install zip pdo_mysql mysqli \
&& docker-php-ext-enable mysqli
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_HOME /composer
ENV PATH $PATH:/composer/vendor/bin
WORKDIR /var/www/html
RUN composer global require "laravel/installer"
PHP libzip-dev
php.ini
PHPの設定ファイルを作成します。
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
Apacheの設定ファイル
Apacheのポートや、ドキュメントルートなど、最低限の設定を行います。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Dockerコンテナの起動
各種ファイルの準備ができたら、次のコマンドを使用してDockerコンテナを起動します。最初は400MB近いファイルがダウンロードされ時間がかかるので、気長に待ちます。
$ docker-compose up -d
Laravelプロジェクトの作成
webのコンテナ にシェルでログインして、Laravelの新規プロジェクトを作成します。
Laravel
0 件のコメント:
コメントを投稿