常駐先社長「APIをFuelから他のFWにするけどどうする?PythonでもJavaでもなんでもいいよ」
自分「え!・・・・」
(ここの会社ほとんどPHPしかやってないじゃんか・・・知見ないとなんかあったらめんどいよな・・・)
自分「Laravelでよくないっすか?」
常駐先社長「じゃあLaravelでいっか。よろしく」
というわけでFuel PHPというFWを使っていたがPHPのバージョンが古いのでLaravelに移行した時のメモ。ディレクトリはこんな感じ。
docker-compose.ymlをこんな感じで作成
version: '3.8'
services:
php-apache:
container_name: php8.1-apache
build:
context: ./php
ports:
- '21280:80'
volumes:
- ./src:/var/www/api
- ./apache/default.conf:/etc/apache2/sites-enabled/000-default.conf
- ./apache/logs:/var/log/httpd
depends_on:
- mysql
networks:
- app-net
# mysqlサーバ
mysql:
container_name: pj-mysql
image: mysql:5.7
# M1,M2macの場合
# platform: linux/amd64
#command:
# - --sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ONLY_FULL_GROUP_BY"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=db_name
- MYSQL_USER=db_user
- MYSQL_PASSWORD=password
volumes:
- ./mysql/volumes:/var/lib/mysql
- ./mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf
- ./mysql/data:/data
- ./mysql/init.d:/docker-entrypoint-initdb.d
ports:
- "23507:3306"
networks:
- app-net
networks:
app-net:
driver: bridge
php/Dockerfile
FROM php:8.1-apache
RUN apt-get update \
# unzip (composer create-project で必要)
&& apt-get install -y unzip \
# Vim
&& apt-get install -y vim \
# PHP BCMath
&& docker-php-ext-install bcmath \
# PHP GD
&& apt-get install -y zlib1g-dev libpng-dev libfreetype6-dev libjpeg62-turbo-dev libjpeg-dev \
&& docker-php-ext-configure gd --with-jpeg \
--with-freetype\
&& docker-php-ext-install -j$(nproc) gd \
# PHP intl
&& apt-get install -y libicu-dev \
&& docker-php-ext-install intl \
# PHP zip
&& apt-get install -y \
libzip-dev \
zip \
&& docker-php-ext-install zip \
# PHP PDO MySQL
&& docker-php-ext-install pdo_mysql \
&& apt-get install -y sudo less default-mysql-client \
# cron intl
&& apt-get install -y cron \
# mod_rewrite 有効化
&& a2enmod rewrite
WORKDIR /var/www/api
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
dockerを立ち上げてphpのコンテナに入ります
docker container exec -it php8.1-apache bash
コンテナに入ったらLaravelのアプリを作成します。ドットでカレンとディレクトリに作成します。
composer create-project laravel/laravel .
php/DockerfileにはLaravel-Excel使うんで色々書いてますがもっとミニマルでもよいかもです。
MySQLは8にした方がいいですね。
コメント