Laravel을 위한 다단계 Docker 빌드
일반적으로 대부분의 배포 시간이 걸립니다.
종속성을 다운로드하고 프런트엔드 자산을 컴파일하는 데 사용된 불필요한 종속성으로 인해 최종 이미지가 더 커질 수 있다는 점은 말할 것도 없습니다.
Docker 다단계 빌드
배포를 더 빠르게 하고 이미지를 더 얇게 만드는 가장 쉬운 방법 중 하나는 다단계 도커 빌드를 사용하는 것입니다.
Docker는 특정 단계를 캐시하고 종속 파일이 변경된 경우에만 다시 실행합니다.
작곡가 단계
#
# PHP Dependencies
#
FROM composer:2.0 as vendor
WORKDIR /app
COPY database/ database/
COPY composer.json composer.json
COPY composer.lock composer.lock
RUN composer install \
--no-interaction \
--no-plugins \
--no-scripts \
--no-dev \
--prefer-dist
COPY . .
RUN composer dump-autoload
NPM 단계
#
# Frontend
#
FROM node:14.9 as frontend
WORKDIR /app
COPY artisan package.json webpack.mix.js yarn.lock tailwind.js ./
RUN npm install
COPY resources/js ./resources/js
COPY resources/sass ./resources/sass
RUN npm run production
신청 단계
#
# Application
#
FROM php:7.4-fpm
WORKDIR /app
# Install PHP dependencies
RUN apt-get update -y && apt-get install -y libxml2-dev
RUN docker-php-ext-install pdo pdo_mysql mbstring opcache tokenizer xml ctype json bcmath pcntl
# Copy Frontend build
COPY --from=frontend /app/node_modules/ ./node_modules/
COPY --from=frontend /app/public/js/ ./public/js/
COPY --from=frontend /app/public/css/ ./public/css/
COPY --from=frontend /app/public/mix-manifest.json ./public/mix-manifest.json
# Copy Composer dependencies
COPY --from=vendor /app/vendor/ ./vendor/
COPY . .
RUN php artisan config:cache
RUN php artisan route:cache
이 기사here.에서 사용된 전체
Dockerfile
를 찾을 수 있습니다.즐기다!
Reference
이 문제에 관하여(Laravel을 위한 다단계 Docker 빌드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/titasgailius/multi-stage-docker-builds-for-laravel-c86텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)