Вставить код в Docker-контейнер или смонтировать его как том?
Я недавно пользуюсь docker и собираюсь перейти с виртуальной машины на контейнеры в моей производственной среде. Но потом я внезапно осознаю, что то, что идеально подходит для моей среды разработки и тестирования, не идеально для производства.
На моем dev и qa я монтирую свою версионную папку проекта в контейнер python / php (назовите его), и я рассматриваю этот контейнер как "работающую службу" для моего кода. Это избавляет меня от огромных контейнеров, так как история контейнеров не меняется, когда я меняю свой код (git commit или else).
На производстве идеальным вариантом будет то, что у меня будут чистые автономные контейнеры с моим кодом внутри, а не смонтированные, как в dev.
Итак, я правильно понял? Как ты делаешь это? Используете ли вы те же контейнеры из Dev в Prod?
2 ответа
Я делаю то же самое в моей среде разработки. У меня есть рабочий Dockerfile, который ДОБАВЛЯЕТ папку проекта, а затем запускаю все тесты для нее. Поскольку единственное различие между контейнером разработки и рабочим контейнером заключается в том, что при добавлении в контейнер кода, а не кода или параметров, они работают одинаково.
Действительно, вы можете сделать это, добавив дополнительные аргументы, называемые -v, когда вы запускаете его
sudo docker run -i -t -v /home/ubuntu/my_code:/home/mydocker/my_code ubuntu/my_docker /bin/bash