PHP Dockerfile中的多阶段构建

PHP
1463
2024/7/24 2:45:25
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在 PHP 项目中,可以使用多阶段构建来减小 Docker 镜像的体积,提高构建效率。以下是一个 PHP Dockerfile 中的多阶段构建示例:

# 第一阶段:构建 PHP 应用
FROM php:7.4 AS builder

WORKDIR /app

# 安装依赖
COPY composer.json composer.lock ./
RUN apt-get update && apt-get install -y git zip \
    && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
    && composer install --no-scripts --no-autoloader

# 复制应用代码
COPY . .

# 构建应用
RUN composer dump-autoload --optimize

# 第二阶段:运行 PHP 应用
FROM php:7.4

WORKDIR /app

# 复制第一阶段构建的应用
COPY --from=builder /app .

# 运行应用
CMD ["php", "-S", "0.0.0.0:8080", "-t", "public"]

在这个示例中,第一阶段使用 php:7.4 镜像构建 PHP 应用,并安装依赖、复制应用代码、构建应用;第二阶段则使用 php:7.4 镜像运行 PHP 应用,并从第一阶段复制构建的应用代码。

通过多阶段构建,可以避免将构建工具和依赖包等无关内容打包进最终的 Docker 镜像中,从而减小镜像的体积并提高构建效率。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: php redis事务的错误处理机制如何工作