Docker多阶段

时间:2018-10-25 11:27:50

标签: kubernetes dockerfile docker-multi-stage-build

互联网上的大家好,有人知道如何或是否有可能将多阶段Dockerfile的一个阶段复制到另一个阶段吗?

出于各种商业原因,我被指示使用多阶段Dockerfile,但是我真正需要做的是结合appserver映像和webserver映像。在docker-compose中这很好,因为您可以参考每个部分-但我不确定是否可以通过GCP和Kubernetes完成。

我的Dockerfile代码在下面。

FROM php:7.1-fpm as appserver

RUN apt-get update && apt-get install -y libpq-dev \
    && docker-php-ext-install pdo pdo_pgsql pgsql
RUN apt-get update && \
     apt-get install -y \
         zlib1g-dev \
         && docker-php-ext-install zip

COPY ./app /var/www/html

FROM nginx:stable-alpine as webserver
COPY ./app /var/www/html/
COPY vhost-prod.conf /etc/nginx/conf.d/default.conf

1 个答案:

答案 0 :(得分:4)

不确定,您要通过上述Dockerfile尝试实现什么。

  • 多阶段构建不适用于上述目的
  • 您不能在多阶段构建中解决任何问题
  • 多阶段构建是构建二进制文件/代码,并将其复制到最终映像中,这样您就无需将开发工具带入生产中

对于您的用例,请制作两个docker文件,一个用于应用程序,另一个用于proxy / nginx,分别构建它们并独立运行/扩展。

如果从nginx提供静态内容,则只需要在批量安装静态内容的情况下运行nginx。