Перейти к содержимому

Как обновить docker compose

  • автор:

Как обновить docker-compose на prod-сервере, ничего не поломав?

Добрый день. Я джун, прод меня мало касается, и у меня даже нет туда доступов, но чисто из любопытства было бы интересно узнать мнения более опытных людей на этот счет.
Есть два сервера: тестовый и продакшн. Проблема в том, что на тестовом сервере версия docker-compose выше, чем на проде, и в этой версии есть —env-file флаг для указания файла с переменными окружения для бэкенда, а в версии на проде этого флага нет.
Вот и получается выбор: закостылять свой проект под более старую версию docker-compose, либо же рискнуть и обновить docker-compose до более новой версии, но я понимаю, что это может быть чревато.
Но все же, если подумать, неужели теперь все разработки на этом сервер обречены крутиться на старой версии docker-compose?) Странно это и нелогично. Значит, должен быть какой-то путь, как обновить docker-compose, не поломав при этом проекты.

  • Вопрос задан 14 нояб. 2022
  • 635 просмотров

Комментировать
Решения вопроса 1
Vitaly Karasik @vitaly_il1
DevOps Consulting

Ответ простой — обновляют docker-compose.
Варианта два:
1) если прод. сервер один, то просят время на downtime, обновляют, проверяют, возвращают в продакшен
2) если серверов несколько, то исключают один сервер из сервиса, обновляют, проверяют, подключают заново, и т.д. со следующими

Ответ написан 14 нояб. 2022
Комментировать
Нравится 3 Комментировать
Ответы на вопрос 1
ДевОпс Сисадмин

«Проблема в том, что на тестовом сервере версия docker-compose выше, чем на проде, и в этой версии есть —env-file флаг для указания файла «

А зачем вы используете разные по версиям ПО среды для тестирования/разработки и в проде? Такого быть не должно, если вы конечно не планируете апгрейд прода и обкатываете новую среду, но это уже не проблемы джуна.

Ответ написан 14 нояб. 2022
Нравится 3 1 комментарий
Sazoks @Sazoks Автор вопроса

Ну, если бы я знал) Так вот получилось. Надеюсь, в скором времени все обновят, а то на старой версии докера сидеть не охота.

Ваш ответ на вопрос

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

docker

  • Docker
  • +1 ещё

Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) — почему?

  • 1 подписчик
  • 6 часов назад
  • 22 просмотра

Обновление версии docker compose в ubuntu linux

моя система os is ubuntu, текущая docker-compose version was 1.25 но импортированное python-django web app has compose-file with version was 3. 9. как обновить мою систему docker-compose версии , чтобы я мог выполнить веб-приложение

Это зависит от версии Ubuntu, но обычно вы можете обновить docker-compose , установив самую новую возможную версию, как описано в официальной документации .

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose 

Как обновлять только один контейнер через docker-compose?

У меня через docker compose запускаются несколько контейнеров — api, frontend, bot, .
Когда я вношу пару изменений в frontend, каждый раз приходится делать следующее:
docker-compose down (отрубает все контейнеры)
docker-compose pull frontend (закачивает новую версию образа)
docker-compose up (заново запускает с новым frontend)
Как можно обновлять один контейнер? Ведь получается, что когда я меняю только frontend, также останавливается и bot, который с frontend никак не связан

  • Вопрос задан более года назад
  • 828 просмотров

Комментировать

Решения вопроса 0

Ответы на вопрос 1

Viji

Associate DevOps Engineer

Ответ написан более года назад

Комментировать

Нравится 1 Комментировать

Ваш ответ на вопрос

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

docker

  • Docker
  • +1 ещё

Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) — почему?

  • 1 подписчик
  • 6 часов назад
  • 22 просмотра

Как обновить docker?

docs.docker.com/install/linux/docker-ce/ubuntu либо скачать бинарники download.docker.com/linux/static/stable/x86_64 и заменить в /usr/bin предварительно остановив dockerd (не рекомендую, но помогает в некоторых случаях)

26 мар 2019 в 10:07

@TotalPusher, не, бинарники — зло: ru.stackoverflow.com/a/907613/191416. Тока через пакетный менеджер, благо на бубунте всё должно взлететь.

26 мар 2019 в 22:45

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Логика во всех случаях и вкусах GNU/Linux одна и та же — добавляем официальные репозитории Docker и ставим последнюю версию:

GNU/Linux Debian Stretch+

# apt-get install apt-transport-https dirmngr ca-certificates software-properties-common # echo 'deb https://apt.dockerproject.org/repo debian-stretch main' >> /etc/apt/sources.list.d/docker.list # apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys F76221572C52609D # apt-get update # apt-get install docker-engine 

GNU/Linux Ubuntu 18.0+

# apt-get install apt-transport-https dirmngr ca-certificates software-properties-common # Добавляем GPG ключи # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - # add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" # apt update # apt install docker-ce 

GNU/Linux Fedora 28+

# dnf -y install dnf-plugins-core # source /etc/os-release # cat  
centos/ debian/ fedora/ raspbian/ stalinux/ static/ ubuntu/ 

Можно конечно использовать NixOS, где контейнеры просто не нужны в виду нового подход доставки пакетов.

Ссылки

  • https://download.docker.com/linux/
  • https://discourse.nixos.org/t/is-there-much-difference-between-using-nix-shell-and-docker-for-local-development/807
  • https://github.com/NixOS/nixops

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *