Docker 树阶段
Docker muti-stage
是否可以将多阶段 Dockerfile 的一个阶段复制到另一个阶段?
出于各种业务原因,我被指示使用多阶段 Dockerfile,但我真正需要做的是结合应用服务器映像和网络服务器映像。这在 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
不确定,你想通过上面的 Dockerfile 实现什么。
- 多阶段构建不是为了上述目的
- 你不能在多阶段构建中抛出任何问题并解决它
- 多阶段构建是构建 binaries/code 并将其复制到最终图像,这样您就不会将开发工具带入生产
对于您的用例,请制作两个 docker 文件,一个用于应用程序,另一个用于 proxy/nginx,独立构建它们并独立 run/scale 它们。
如果从 nginx 提供静态内容,您只需要 运行 nginx 装载静态内容。
是否可以将多阶段 Dockerfile 的一个阶段复制到另一个阶段?
出于各种业务原因,我被指示使用多阶段 Dockerfile,但我真正需要做的是结合应用服务器映像和网络服务器映像。这在 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
不确定,你想通过上面的 Dockerfile 实现什么。
- 多阶段构建不是为了上述目的
- 你不能在多阶段构建中抛出任何问题并解决它
- 多阶段构建是构建 binaries/code 并将其复制到最终图像,这样您就不会将开发工具带入生产
对于您的用例,请制作两个 docker 文件,一个用于应用程序,另一个用于 proxy/nginx,独立构建它们并独立 run/scale 它们。
如果从 nginx 提供静态内容,您只需要 运行 nginx 装载静态内容。