Вставить код в 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

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