Открой безлимитный доступ ко всем скринкастам и получай большие скидки на все наши стримы
Бесплатный
0/ мес.

Ограниченный доступ
только к Free-видео

Активен
Подписчик
500/ мес.

Безлимитный доступ
ко всем скринкастам

Принимаем оплату российскими и иностранными картами, системами МИР Pay и Tinkoff Pay.

Дистанционный деплой с Docker SSH

Сделали несколько инфраструктурных улучшений и перешли на более удобный деплой.

Исправили недочёты инфраструктуры, довели до ума работу с SSH-ключами, сделали более удобный дистанционный деплой в Docker Swarm через SSH, перешли на Systemd Timers вместо Cron, разделили docker-entrypoint файлы, исправили конфликты доступа к файлам из Docker-контейнеров и доработали diff-проверки в пайплайне, чтобы они работали без ложных срабатываний при использовании внешнего кэша сборки в buildx:

  • 00:00:00 Что сегодня будет
  • 00:00:39 Изменение версии Traefik
  • 00:04:49 Экранирование пробрасываемых путей
  • 00:05:53 Развёрнутые имена параметров
  • 00:07:57 Конфликт локального и тестового окружения
  • 00:14:21 Флаг интерактивного режима
  • 00:14:54 Изменение прокидываемого порта
  • 00:15:58 Точки в регулярном выражении
  • 00:16:38 Переименование compose-файлов
  • 00:17:43 Сборка образов плагином buildx
  • 00:19:59 Синтаксис переменных окружения
  • 00:20:38 Регистр ключевых слов
  • 00:21:11 Таймаут команды down
  • 00:24:06 Увеличение задержки при деплое
  • 00:26:19 Переход на Mailpit для эмуляции почты
  • 00:30:56 Переход на эмулятор S3 хранилища
  • 00:36:16 Кавычки для переменной пароля
  • 00:36:55 Имя секрета для файлов ключей
  • 00:38:08 Более надёжный Docker Diff
  • 00:49:37 Установка JQ в Jenkins
  • 00:50:21 Ограничение параллельной сборки проекта
  • 00:52:25 Строгая проверка хоста в SSH
  • 00:58:30 Дистанционный деплой в Docker Swarm через SSH
  • 01:12:19 Поштучный Rollback в Docker Swarm
  • 01:13:46 Доступ к реестру при дистанционном деплое
  • 01:17:36 Сокрытие compose-файла
  • 01:23:34 Миграция с команды apt-key
  • 01:25:14 Переход с Cron на Systemd Timers
  • 01:29:26 Разделение docker entrypoints
  • 01:38:13 Запуск с exec для сохранения PID процесса
  • 01:42:33 Синтаксис команд в compose-файлах
  • 01:43:47 Передача UID и GID в контейнеры
  • 01:54:32 Смена портов для не-root контейнеров
  • 01:58:44 Подведение итогов

В следующем эпизоде переведём фронтенд с шаблона Create-React-App на сборку в ViteJS.

Скрытый контент (код, слайды, ...) для подписчиков. Открыть →
Дмитрий Елисеев
elisdn.ru
Комментарии (2)
Руслан
2026-03-04 09:31

Дмитрий, спасибо! С нетерпением ожидаем продолжения ранее запланированных скринкастов по аукциону (RabbitMQ, Outbox Pattern, Centrifugo etc.).

Ответить
Николай
2026-03-08 10:25

Спасибо за скринкаст! Недавно столкнулся с проблемой ограничения выделяемой памяти для хранения переменных при старте контейнера. Переменных стало много (те, которые прописываются в файле docker-compose.yml), и в какой-то момент, контейнер на образе php-fpm перестал запускаться. Вернее, он вроде бы запускается, но тут же завершается с ошибкой "fpm NOTICE: ready to handle connections NOTICE: Finishing NOTICE: exiting, bye-bye!". Существует ли возможность каким-либо образом увеличить лимит памяти для хранения этих переменных, если дело в этом?

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий

Или войти через:

Yandex
MailRu
GitHub
Google