Docker + Apache + PHP7.4 + MySQL(MariaDB) + SSL + Laravel (part2)
vi ./Dockerfile
# 中身はこちら↓↓
FROM php:7.4-apache
COPY ./conf/php.ini /usr/local/etc/php
RUN touch /var/log/php_errors.log
RUN chmod 777 /var/log/php_errors.log
RUN mkdir -p /composer/vendor/bin
RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php && ln -s /usr/bin/composer.phar /usr/bin/composer
ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_HOME /composer
ENV PATH $PATH:/composer/vendor/bin
COPY ./certs/rootCA.pem /etc/ssl/certs/rootCA.pem
ENV CURL_CA_BUNDLE=/etc/ssl/certs/rootCA.pem
RUN apt-get update \
&& apt-get -y install vim wget sudo curl git\
&& apt-get -y install less \
&& rm -rf /var/lib/apt/lists/* \
&& a2enmod ssl \
&& a2enmod rewrite \
&& a2ensite default-ssl
RUN apt-get update && \
apt-get install -y unzip && \
apt-get install -y zip unzip libzip-dev libpq-dev libonig-dev libxml2-dev && \
apt-get install -y zlib1g-dev libpng-dev libfreetype6-dev libjpeg62-turbo-dev libwebp-dev libxpm-dev && \
docker-php-ext-configure gd --with-jpeg --with-webp --with-xpm --with-freetype &&\
docker-php-ext-install -j$(nproc) gd && \
docker-php-ext-install pdo_mysql mysqli xml zip
RUN composer global require "laravel/installer"
vi ./docker-compose.yaml
# 中身はこちら↓↓
networks:
docker-net-001:
services:
php:
container_name: php74_apache_ssl_web
build: .
image: php_apache_ssl
ports:
- 80:80
- 443:443
restart: always
volumes:
- ./htmlarea:/var/www/html
- ./conf:/etc/apache2/sites-enabled
- ./certs:/etc/ssl/local/certs
networks:
docker-net-001:
environment:
TZ: Asia/Tokyo
mysql01:
image: mysql@sha256:2878ca7ca986b54c948966b7103aeceb747f50b9ecf34ecf934036cca58274db
platform: linux/x86_64
restart: always
container_name: php74_apache_ssl_mysql
logging:
driver: json-file
ports:
- 3306:3306
networks:
- docker-net-001
volumes:
- ./db/mysql:/var/lib/mysql
- ./db/my.cnf:/etc/mysql/conf.d/my.cnf:ro
- ./db/dump/:/var/dump/
- ./db/initdb.d/:/docker-entrypoint-initdb.d/
environment:
- MYSQL_ROOT_PASSWORD=0000
- TZ=Asia/Tokyo
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: php74-apache-phpmyadmin
platform: linux/amd64
environment:
- PMA_HOST=php74_apache_ssl_mysql
volumes:
- ./phpmyadmin/sessions:/sessions
ports:
- 3333:80
networks:
- docker-net-001
restart: always
docker-lamp
|-docker-compose.yaml
|-Dockerfile
|-certs
|-rootCA.pem
|-test.local.key
|-test.local.pem
|-conf
|-000-default.conf
|-default-ssl.conf
|-php.ini
|-db
|-my.cnf
|-htmlarea
|-test.local
|-public
|-index.php
|-phpmyadmin
|-sessions
docker-compose build
docker-compose up -d
sudo vi /etc/hosts
# phpadmin用も含め、2つ追加
127.0.0.1 localhost
127.0.0.1 test.local
docker exec -it php74_apache_ssl_web /bin/bash
ダミーのtest.localがすでにあるのでいったん退避mv ./test.local ./test.local_bk
新規のプロジェクトtest.localをつくります。
laravel new test.local