@Vadim1899

Как не обновлять локальный файл docker-compose при git pull?

Привет! Ситуация следующая: есть гит с веб-приложением, в котором также лежит docker-compose.yml конфиг для запуска аппа в докере. В этом файле указаны базовые конфиги - сервисы, энвы и тд.

Я сделал гит клон на рабочий сервер и мне надо подправить конфиг докера: прописать networks, прокинуть нужные порты и тд. Но если я это сделаю, то при дальнейшем git pull я не смогу обновить код локального репотизория на сервере, тк файлы докера будут отличаться.

Могу ли я настроить git pull так, чтобы при git pull игнорировались локальные изменения файла docker-compose.yml?

И второй общий вопрос - ок ли такой флоу деплоя для несерьезного продакшена (на рабочем компе вносим изменения в код — отправляем в гит репозиторий — пуллим на сервере актуальный код — пересобираем докер через docker-compose build)?
  • Вопрос задан
  • 177 просмотров
Решения вопроса 2
@Kostik_1993
Web Developer
Я так понимаю вам нужна правка для локальной разработки которая не нужна на проде. Для этого вам нужно создать еще один docker-compose.dev.yml файл только с теми конфигами которые хотите поправить. Сам же файл не нужно индексировать, а поместить его в .gitignore

https://docs.docker.com/compose/multiple-compose-f...
https://docs.docker.com/compose/multiple-compose-f...

UPD. Так же если вам нужно делать отличными какие-то опции вроде порт, имя или пароль бд можно вынести это в переменные окружения или .env файл. Его также стоит поместить под .gitignore
Ответ написан
Комментировать
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Git и не удаляет ваши локальные правки. Если вы что-то изменили в рабочем каталоге и не собираетесь это коммитить, то оно и останется в таком состоянии даже после pull. Чаще наоборот спрашивают — почему pull не обновляет такие файлы.

Но всё равно лучше создать отдельный dev-конфиг — так надежнее.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Можно добавить в конфиг композа конструкции вида:
environment:
  SOME_VAR: "${SOME_VAR:-default_value}"

Далее, при необходимости изменения умолчаний, определял бы каким-то способом переменные (например, через .env, добавленный в .gitignore, чтобы не синкался с репозиторием)
Ответ написан
Комментировать
@nsnoob
Разделение деплоев по веткам должно решить проблему
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы