Докер мути-этап

Привет люди из Интернета, кто-нибудь знает, как или если можно скопировать один этап многоэтапного Dockerfile в другой?

По различным деловым причинам меня проинструктировали использовать многоэтапный Dockerfile, но мне действительно нужно объединить образ appserver и образ веб-сервера. Это прекрасно в 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 ответ

Решение

Не уверен, что вы пытаетесь достичь с помощью вашего Dockerfile выше.

  • многоступенчатая сборка не для вышеуказанной цели
  • Вы не можете бросить любую проблему в многоэтапную сборку и решить ее
  • многоэтапная сборка - это сборка двоичных файлов / кода и их копирование в окончательное изображение, чтобы вы не переносили инструменты разработки в производство.

Для вашего случая использования, пожалуйста, создайте два файла Docker, один для приложения, а другой для proxy / nginx, создайте их независимо и запустите / масштабируйте их независимо.

В случае подачи статического контента из nginx, вам просто нужно запустить nginx с монтированием тома статического контента.

Другие вопросы по тегам