Докер мути-этап
Привет люди из Интернета, кто-нибудь знает, как или если можно скопировать один этап многоэтапного 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 с монтированием тома статического контента.