Docker составляет развертывание - PullRequest
0 голосов
/ 13 июня 2018

У меня вопрос по поводу docker compose.Я новичок в докере, и я не могу понять "правильный" поток для развертывания.

Предположим, у нас есть "Dockerfile" , который содержит шаги для построения образа из проектаисходные файлы.И у нас есть "docker-compose.yml" , который фактически строит этот "Dockerfile" вместе с еще 2 сервисами.Здесь это не важно, но допустим, что это nginx, webapi (текущий проект) и mongodb.

Итак, если я запусту "docker compose up" на моей машине - это будетсоздайте 3 изображения (webapi, nginx, mongodb) и запустите их.Здесь все идеально.

Вопрос в том, что мне нужно сделать, чтобы развернуть его в производство.Что я пробовал:

  • Я могу проверить git на рабочем сервере и запустить «docker compose up» , и он будет работать.Но я думаю, что это не тот путь - использование производственного сервера для создания проектов кажется глупым.

  • Я могу запустить "docker compose build" локально, получить3 изображения, отправьте их в хранилище докеров, перейдите к производственной загрузке изображений из хранилища и запустите их один за другим.В этом случае я вообще не вижу смысла в «docker compose» , я теряю способ легко определять объемы и отношения между изображениями, что я могу сделать с помощью docker compose.Это также потребует много ручного действия или некоторых пользовательских сценариев для его автоматизации.

Похоже, есть способ использовать "докер" подключиться к удаленному серверу и использовать «docker compose up» , но я не смог заставить его работать.По некоторым причинам не удалось подключиться из Windows к удаленному докеру в Linux.Прежде чем идти дальше с этой опцией, мне нужно понять / подтвердить, это случай удаленного докера и «docker compose up» , где будет происходить сборка?И если у меня есть несколько томов, определенных в "docker-compose.yml" , они будут созданы на локальной машине или на удаленной?

1 Ответ

0 голосов
/ 13 июня 2018

Для моего проекта я выбрал вариант, который напоминает ваше второе предложение, но немного более автоматический.CI выполняет docker build webapi, поскольку это единственная часть моей системы, которая на самом деле построена из источников.Ci также делает docker push для моего личного хранилища.Следующий шаг - запуск docker-compose up на производстве.Композит не создает веб-интерфейс, он только настраивает его, а не использует build раздел, используя image.Docker compose также настраивает другие необходимые сервисы (nginx, mongo) и сети для связи.Даже если у вас есть пользовательское создание изображений для других сервисов, вам не требуется полная среда разработки для их создания.Для полной автоматизации вы можете сделать докер для удаленного запуска.Обратите внимание, что Docker не будет обновлять изображения, если они уже загружены при выполнении docker-compose up, вам нужно docker pull их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...