меня есть 1 приложение которое состоит из следующих технологии:
- бэкенд на nodejs
- домашняя страница на react
- админка на angular
Админка будет открываться через поддомен.
Я хочу настроить для проекта ci/cd и залить на vps сервер, но не совсем понимаю как строить структуру проекта.
Проконсультируйте пожалуйста!
Я представляю себе 2 способа:
1)
Все три проекта я должен вести в одном гит репозитории и у каждого будет свой отдельный dockerfile. У родительской папки будет docker-compose который будет запускать все 3 проекта.
Такая структура папок:
root:
api
dockerfile
home
dockerfile
admin
dockerfile
docker-compose
В vps сервере клонирую репозиторий и запускаю docker-compose
2)
У каждого проекта свой отдельный гит репозиторий и dockerfile. В vps сервере настраиваю ci/cd для каждого проекта.
Какой путь правильнее?
Будет ли ci/cd работать если я запихну 3 проекта в один репозиторий?
Сценарии использования докера для разработки и для продакшн несколько отличаются. В продакшн вы должны взять готовый образ и запустить его. НЕ выкачивать исходники на сервер. НЕ собирать образ на сервере. Ну тоесть технически это конечно возможно, но тогда возникает вопрос а зачем вам докер, т.к. вы огребете все те проблемы от которых он призван вас избавить. Вам стоит задуматься над двумя вопросами: 1. Под чем вы будете запускать контейнеры на сервере. Направления исследования: голый докер, docker swarm, portainer, rancher, k8s. 2. Docker registry, в который вы будете класть собранные образы и из которого эти образы будут браться для разворачивания на сервере. Dockerhub, github registry, gitlab, etc (вариантов куча)
Обсуждают сегодня