7. マルチステージビルドでの本番イメージ作成
Laravel.shibuya #11 Online
https://gist.github.com/KentarouTakeda/2d86c2d13da51610ffe6ea9f0bacee36
FROM php:8.1-fpm-alpine as base
RUN apk add --no-cache
autoconf g++ gcc libzip libzip-dev make postgresql postgresql-dev zlib zlib-dev
&& docker-php-ext-install
bcmath opcache pdo pdo_pgsql zip
&& apk del
autoconf g++ gcc libzip-dev make zlib-dev
&& curl -qs -o /usr/local/bin/composer https://getcomposer.org/download/latest-2.x/composer.phar
&& chmod +x /usr/local/bin/composer
FROM base as development
RUN apk add --no-cache
autoconf g++ gcc make
&& pecl install
pcov xdebug
&& docker-php-ext-enable
pcov xdebug
&& apk del
autoconf g++ gcc make
FROM base as deploy
COPY ["composer.json", "composer.lock", "./"]
RUN composer install --no-dev
COPY . .
①phpイメージよりbaseイメージを作成
②baseイメージよりdeployイメージを作成
baseイメージよりdevelopmentイメージを作成
(どこからも参照されない)
8. マルチステージビルドとDocker Compose
Laravel.shibuya #11 Online
FROM php:8.1-fpm-alpine as base
RUN apk add --no-cache
autoconf g++ gcc libzip libzip-dev make postgresql postgresql-dev zlib zlib-dev
&& docker-php-ext-install
bcmath opcache pdo pdo_pgsql zip
&& apk del
autoconf g++ gcc libzip-dev make zlib-dev
&& curl -qs -o /usr/local/bin/composer https://getcomposer.org/download/latest-2.x/composer.phar
&& chmod +x /usr/local/bin/composer
FROM base as development
RUN apk add --no-cache
autoconf g++ gcc make
&& pecl install
pcov xdebug
&& docker-php-ext-enable
pcov xdebug
&& apk del
autoconf g++ gcc make
FROM base as deploy
COPY ["composer.json", "composer.lock", "./"]
RUN composer install --no-dev
COPY . .
https://gist.github.com/KentarouTakeda/8442a591419b8f8f7302395335796a39
version: "3"
services:
php:
build:
context: .
target: development
volumes:
- .:/var/www/html
- vendor:/var/www/html/vendor
volumes:
vendor: