Laravelの開発環境をdockerを使ってnginx + php + sqliteの構成で作ってみます。
docker-composeで管理
ディレクトリ構成は以下です。src
ディレクトリ配下にはLaravelのコードがインストールされます。
.
├── docker
│ ├── nginx
│ │ └── default.conf
│ └── php
│ ├── Dockerfile
│ └── php.ini
│
├── docker-compose.yml
└── src
docker-composeでコンテナを管理します。
version: '3'
services:
nginx:
image: nginx
ports:
- 8080:80
volumes:
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./src:/var/www
depends_on:
- php
php:
build: ./docker/php
volumes:
- ./src:/var/www
nginxの設定
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name localhost;
root /var/www/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fixes timeouts
fastcgi_read_timeout 600;
include fastcgi_params;
}
}
phpコンテナ
FROM php:7.3-fpm
ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_HOME /composer
ENV PATH $PATH:/composer/vendor/bin
#Composer install
COPY --from=composer /usr/bin/composer /usr/bin/composer
RUN apt-get update &&\
apt-get install -y libzip-dev &&\
docker-php-ext-configure zip --with-libzip && \
# Install the zip extension
docker-php-ext-install zip && \
docker-php-ext-install pdo_mysql
COPY php.ini /usr/local/etc/php/
WORKDIR /var/www
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
コンテナ起動
docker-compose.ymlファイルが置いてある場所でdocker-compose up
を実行するとコンテナが起動します。バックグラウンドで起動するために-d
も付けて起動させます。
docker-compose up -d
Laravelインストール
コンテナが起動できたらLaravelをインストールするために、phpコンテナに入ります。
# docker-compose exec php bash
phpコンテナに入れたらLaravelをインストールします。
# composer create-project laravel/laravel .
.env.example
を.env
にリネームします。
cp .env.example .env
アプリケーションキーを作成します。
php artisan key:generate
インストールが完了したら、http://localhost:8080にアクセスして環境が正しく構築出来ているか確認します。下の画像のように表示できていればOKです。
SQLiteの設定
laravel/database 配下に database.sqlite というファイルを作成します。次に.env
ファイルをsqliteを使用するために修正します。
DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
# DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
これで設定は終わりです。
作成したデータベースにデータを登録する場合は、以下の記事を参考に。