Alexander
Всем привет. Ребят, подскажите. Есть микросервисная архитектура, состоящая, допустим, из 15 микросервисов. Для них настроен CI процесс с использовать docker compose, чтобы поднимать необходимый кластер зависимых компонентов для функционального и интеграционного тестирования. Но не используя оркестратор, можно ли как-то автоматизировать CD процесс для деплоем Docker-контейнеров? А то создавать один docker compose файлик для всех микросервисов и вручную писать команды - не кайф
George
ты можешь в гитлаб-раннере писать ‘ssh blablabla@myhost.com docker run -d blablabla’
George
но вряд ли это то, к чему ты стремишься
Alexander
Явно не то, да
George
самое мерзкое - это кластер зависимых компонентов, если обязателен порядок их запуска. Тут ты прилипаешь, причем весьма серьезно
George
я выше по ветке рассказывал как в докер-компоузе на хелсчеках можно собрать порядок запуска (практически любой), но это костыли
George
в общем, скорее всего тебе нужно все-таки взять какой-нибудь ансибл и декларативно описать процедуру тестирования
George
и выкатки
Alexander
Ansible у меня отвечает за генерацию шаблонов сейчас
Alexander
Понимаю, что он как бы не только configuration management нынче, но думал может ещё есть варианты)
George
ну, вообще отличная история - значит он есть и несложно его адаптировать под задачу
Alexander
Значит всё верно думал
George
ну, а какие еще видишь пути, если не ехать в кубернетес сразу?
Alexander
Больше и не вижу
Alexander
ну, а какие еще видишь пути, если не ехать в кубернетес сразу?
Слушайте, а как вы запускаете тесты в кластере docker compose на CI сервере? Пишете docker-compose exec app sh npm test? Это применительно к Node.js
Alexander
А то некрасиво это в пайплайне так писать. Или мне кажется и это норма?)
George
для этого в гитлаб-си можно либо использовать services, либо все равно жахнуть docker run -d ….., а потом docker run -it npm test или типа того
Alexander
вообще тесты в пайплайне должны отрабатывать
Я про пайплайн и говорю. Точнее, про стэп пайплайна
George
между степами среда уничтожается, так что о чем речь?
George
https://docs.gitlab.com/ee/ci/examples/
Alexander
Про окружение знаю)
Alexander
А я всё ещё Jenkins юзаю
George
не самый плохой вариант
Alexander
В GitLab CI просто нет из-под капота некоторых вещей, которые реализуются с помощью плагинов в Jenkins. Да, их можно настроить с помощью внешних компонентов, на что надо будет потратить время, но удобство всё равно несколько выше у Jenkins. В общем, тут зависит от такого, какие задачи надо кому покрыть
Alexander
Это лишь моё мнение. Могу ошибаться
Alexander
Хотя, реализовать тренды для нескольких статических анализаторов и представить их в человеческом виде через GitLab CI в принципе не получится...
Alexander
не самый плохой вариант
Ещё один вопросик, если можно: если для интеграционного тестирования необходимо поднять кластер зависимых компонентов и микросервис, в котором есть миграции и дамп, который нужно накатить. Как быть с дампом? Как его накатить, если он запрашивает пароль к БД? Вот насчёт этого я решения не придумал...
Rom
Народ, как удалить latest??
Rom
Rom
как только удаляю, сразу появляются
George
мы выкладывали результаты прогонов в pages. Но никто не мешает грузить в конфлюенс
George
услвоно образ на 10ГиБ
George
докер-компоуз?
Rom
докер-компоуз?
ага, спс, там рестарт был
Alexander
мы выкладывали результаты прогонов в pages. Но никто не мешает грузить в конфлюенс
С pages я так и не поработал... Надо будет наконец попробовать
Alexander
в смысле? Никто не мешает сделать образ бд с уже готовыми данными. Мы так и сделали
И как вы его потом в пайплайне юзали? И где снапшот хранили перед запуском пайплайна?
George
в реджистри
Alexander
А, прямо так...
Alexander
Ну это самое первое, что мне пришло в голову
Alexander
Но тоже думал норма такое делать или нет
Alexander
Спасибо за ответы!
Rom
есть какой-нибудь простой сиай от мозгоебства?
Rom
в каком плане?
я делаю у дрона так, а он мне говорил что 80 and 443 уже юзатся
Rom
создает образ и не запускает его
Rom
а у кого не спрошу, никто дроном не пользуется
George
и еще действительно на хостовой машине могут быть этти порты заняты
George
—network=host
George
или как-то так
Rom
а тю
George
ну. да, но насрать
Dima
В чем может бытьь проблема? Создал volume, когда делаю docker build... то если папка volume не пустая - вываливается ошибка *container_linux.go:247: starting container process caused "chdir to cwd...*, если папку очистить - все ок
Pavel
Ребята помогите Хочу использовать Debian-slim но там пакеты не устанавливаются в частности postgresql-client Что не так?
Pavel
выяснилось там тупо оказывается не работает update-alternatives т.к. использует папки /usr/share/man/man1-8 которых нет в SLIM я так понял
Ильдар
я делаю у дрона так, а он мне говорил что 80 and 443 уже юзатся
Скорее всего он прав. Смапь на другой порт.
Ильдар
создает образ и не запускает его
Создает контейнер. Образ нельзя запустить.
Dima
Текст ошибки полностью покажи.
Проблема решилась оключением selinux на centos 7.
Ильдар
Народ, как удалить latest??
:latest это тэг образа. Образа удаляются командой rmi. Контейнеры удаляться командой rm. Не путай
Jürgen
Мммм интересно, а когда перестанут юзать лейтест 😨
Jürgen
когда перейдут на :default
- Shoot the leg! - No - Shoot the leg force! - Ok
Andrey
в одном из известных мне продуктов слово force заменили на please в rest api. Чтобы гарантированно удалить объект, нужно было вызывать что-то вроде http://host/delete/obj/123/please
Andrey
Этого не было в документации по апи, и когда клиенты спрашивали, как им "в вашем говно продукте" с форсом что-то удалить, забавно было отвечать, что надо просить с please :)
Jürgen
Zhandos
Всем привет, есть приложение №1 + приложение№2, оба соединены в сеть приложения№1, У приложения №1 есть nginx который смотрит 8080 и делает из него expose: - "80" environment: - "DOMAIN_NAME=${DOMAIN_NAME}" - "PROXY_PASS=http://app:8080" У приложения №2 нету nginx, expose у него тоже 8080. и сервис тоже называется app, пытался менять, не сработало ПРОБЛЕМА::: когда набираешь домен приложения№1, он то показывает приложение №2, то приложение№1 Может кто поможет с советом, спасибо
Anonymous
Привет. У меня происходит какая-то магия. Контейнер останавливается среди ночи и не поднимается. При этом я не нахожу его в списке контейнеров через docker ps --filter "status=exited" что смотреть?