Недавно я планировал развернуть свое приложение на сервере с помощью Docker. Я успешно настроил свою среду разработки с помощью docker и некоторое время запутался в docker-compose.
Мой Dockerfile
выглядит так:
FROM alpine
# ...
COPY . /app
и файл docker-compose.yml
выглядит следующим образом:
version: '3.7'
services:
host:
build:
dockerfile: .docker/Dockerfile
context: .
volumes:
- .:/app
# ...
Теперь вопрос:
Если я введу команду docker-compose up -d
, docker сначала скопирует все мои файлы в каталог изображения / приложения (это желательно для производства) , а затем смонтирует мой проект в контейнер / приложение (для разработки) переопределение работы для производства.
Что, если в моем проекте есть 1 ГБ файлов, я должен тратить это время на ожидание докера, копирующего все эти файлы даром?
Есть ли способ, которым я могу указать докеру не копировать все эти файлы, если он был создан для разработки? Или мне действительно нужно сделать несколько Dockerfiles для нескольких сценариев, таких как тестирование / постановка?
Что если, если в Dockerfile
находится очень длинный и сложный процесс строительства, то, если немного изменить, скажем, Dockerdevelopmentfile
, произойдет сбой в работе, если я забуду изменить его в Dockerproductionfile
.
Что делать, если мне нужно создать от 5 до 10 изображений для моего проекта и даже сотни изображений для компании для нескольких проектов?
Не думаю, что это практично.
Пожалуйста, прости мою наивность.
Я действительно ценю за некоторые советы.