Artem
стягивание мастера и вмерживание ветки звучит мягко говоря кривовато
Artem
что-то с вашим флоу не так
Konstantin
Нет. До этого пользовался Jenkins.
Artem
И докер тут не сильно замешан, вам нужно с вашим ci разобраться.
Konstantin
Объясни, что тебя смутило в постановке задачи ?
Bogdan (SirEdvin)
gitlab CI это сам делает
Bogdan (SirEdvin)
Если вы создаете merge request из вашей ветки в master
Bogdan (SirEdvin)
Хм ... немного не так
Bogdan (SirEdvin)
gitlab прогоняет тесты для вашей ветки, если все ок, то ее можно мерджить (можно настроить автоматический мердж после прохождения cI)
Bogdan (SirEdvin)
Потом делает тоже самое для мастер ветки, в которую влили код
Bogdan (SirEdvin)
Тут скорее вопрос в том, что полностью пологатся на тесты и так слепо лить в прод без тестирования очень не хорошо)
Bogdan (SirEdvin)
Алсо, контейнер gitlab CI сам стягивает каждый раз при запуске job.
Bogdan (SirEdvin)
Если вы используете правильный тип джоба.
Nurik
Всем привет. С докером начинаю только осваиваться. Появился вопрос по разворачиванию докера для тестов в gitlab ci. Нужно в контейнер стягивать актуальный мастер из gitlab Потом вмердживать ветку, запускать тесты и если все успешно, выливать на прод. У кого-то есть хороший туториал как развернуть подобный сценарий, или кто может помочь отпишитесь в личку.
Я юзаю связку gitlab ci и docker. Есть мастер и есть стейджинг, забираю код со стейджинга, прогоняю через линтеры и тесты, потом сливаю в master, если успешно, потом из мастера достаю код, беру последний тег с релизом, и собираю образ, в конце делаю пуш imagе в локально поднятый регистр хаб. Ну и добавил в пайплайн rollback на всякий случай. В общем ничего сложного.
Konstantin
Спасибо за помощь. Буду пробовать.
Nurik
Registry используешь гитлабовское или отдельное?
Гитлабовское стоит. На проде отдельно свой регистр еще.
Kyrylo
А гитлаб омнибусом ставил? Я включил реджистри в конфигурации, перезапустил гитлаб
Kyrylo
он показывает что реджистри работает, но у меня что-то не получается им воспользоваться
l1njan
Гитлабовское стоит. На проде отдельно свой регистр еще.
а для прода отдельный регистр - случайность, или какая-то важная причина была?
Nurik
а для прода отдельный регистр - случайность, или какая-то важная причина была?
Ну там несколько проектов крутится на проде. У каждого свой пайплайн и репозиторий. Все пушится туда. И админу нужно было Universal Control Plane. Ну и еще там уже не помню для чего.
l1njan
А как можно было обойтись без регистра на проде ?
тянуть также из гитлабовского, у нас так работает не могу понять, чем это может быть плохо
Nurik
тянуть также из гитлабовского, у нас так работает не могу понять, чем это может быть плохо
Там есть иерархия и нужно с других прод серверов тянуть image с этого прода. гитлабовский чисто для дева. А на проде, как источник для других продов. Так как там vpn между серверами.
Nurik
Я хз, я только так смог решить проблему. Возможно и правда, не нужно было поднимать регистр на проде.
Nurik
Там есть иерархия и нужно с других прод серверов тянуть image с этого прода. гитлабовский чисто для дева. А на проде, как источник для других продов. Так как там vpn между серверами.
Вот при таком workflow можно было обойтись без docker registry или нет? Мне просто нужен фидбэк, как это можно было сделать, не добавляя лишнюю сущность в воркфлоу.
Oleg
Ребят подскажите) собираю образ. есть переменная ENV MONGODB_PASS 123 как сделать, чтоб она отразилась внутри файла config.yaml в строке вида mongoURI: 'mongodb://test:${MONGODB_PASS}@mongodb:27017/test' dockerfile FROM node:alpine ENV MONGODB_PASS test123 ADD config.yaml /config.yaml EXPOSE 80
Oleg
мапать конфиг не вариант
Vladyslav
Всем привет. Очень нужна помощь. Собираю с помощью docker-compose -> [app, mysql, nginx, redis]. Появилась нужда запускать несколько app с разными env. Поискал в доках как в compose вставить env, но нашел только "env_file", то есть мне каждый раз нужно в гит коммитить чтобы запустить с теми или иными данными свою app'ку. Знаю только один вариант: отсоеденить от compose свой app и запускать отдельно связавши со всем что через compose запустил, чтобы можно было env разные юзать. Это единственный вариант ? Если пояснил криво ситуацию, поправите, уточню моменты. Заранее спасибо
Rinat
ansible (templates/env) далее провайдешь в шаблоне env нужные переменные и запускаешь docker-compose up -d
Rinat
в ансибл шаблоне делаешь логику короче
R
Здравствуйте, подскажите пожалуйста как решить проблему с volume на windows, в vagrant есть config.vm.synced_folder, но не могу найти нечто подобное у docker. Проблема заключается в том что изменения видны в docker-machine но не видны в контейнере
Anatolii
Приветствую. Подскажите есть ли возможность описанный в docker-compose.yml контейнер не запускать при docker-compose up?
Artem
закоментировать его в композе 😉
Anatolii
Закоментировать конечно подходит под вопрос=), но я бы хотел его ручками запускать иногда.
Anatolii
override - опять-же избавится от него на совсем. А иногда я бы хотел его запускать.
Dmitry
override - опять-же избавится от него на совсем. А иногда я бы хотел его запускать.
дак он для того и нужен, чтобы запускать в определнных кейсах определенные части композа.
Gleb
Народ, помогите с тупняком справиться, плиз. Налепил в .travis.yml такой кусок для пуша в dockerhub: after_success: - if [ "$TRAVIS_BRANCH" == "master" ] && [ -n "$TRAVIS_TAG" ]; then docker login -u $DOCKER_USER -p $DOCKER_PASSWORD; docker build --build-arg version=$TRAVIS_TAG -t cheerlesscloud/cexporter .; docker tag cheerlesscloud/cexporter cheerlesscloud/cexporter:$TRAVIS_TAG; docker push cheerlesscloud/cexporter; docker push cheerlesscloud/cexporter:$TRAVIS_TAG; fi При локальном выполнение из bash файлика усё нормуль, а в TravisCI это всё вревращается в одну строчку, которая выполняется за 0.01s и естесна никакой образ никуда не пушит. При этом сие скопипастченно из офф доки https://docs.travis-ci.com/user/docker/#Branch-Based-Registry-Pushes
🦠
а чо, в файл не положить?
🦠
и у тревиса есть only: master
Sergey️
Всем привет, может подскажет кто-нибудь Нужен некий аналог heroku, но для docker - контейнера - Бесплатно хотя бы один мелкий маложрущий контейнер с работой 24/7 - Авто деплой из ветки открытого git repo ( без логина и привязки аккаунта github ) или возможность накостылить в стиле "while true do git pull" - One-click deploy кнопка (как у хероку или docker cloud), с возможностью настройки пары переменных окружения Я так понимаю, такое почти невозможно, может есть что-то близко к этому?)
Sergey️
Да, digitalocean
бесплатность испарилась :)
Nikolay
gitlab
Nikolay
К слову сейчас его пытаюсь поднять и надеюсь настроить все то, что ты описал)
Nikolay
второй час, я начинаю подлагивать, у меня трабла
Nikolay
Error starting userland proxy: listen tcp 0.0.0.0:22
Дмитрий
бесплатность испарилась :)
Там вообще было бесплатно?
Nikolay
sudo docker run —detach \ > —hostname gitlab.loc \ > —publish 443:443 —publish 8001:80 —publish 22:22 \ > —name gitlab \ > —restart always \ > —volume /opt/gitlab/config:/etc/gitlab \ > —volume /opt/gitlab/logs:/var/log/gitlab \ > —volume /opt/gitlab/data:/var/opt/gitlab \ > gitlab/gitlab-ce:latest
Sergey
22 порт мапить в контейнер?
Sergey
Это точно то, что надо
Nikolay
это гитлабовская дока
Nikolay
Чтобы осуществлять работу с репой по ssh
Nikolay
Судя по тому, что мапится 22 порт
Sergey
И чего удивляться, что на хост системе в 90,% висит на 22 порту ссх
Sergey
Так что или меняй мап 2211:22
Nikolay
В целом да, ничего удивительного
Nikolay
но как мне до гита потом достучааться
Sergey
Или уноси ссх с хоста на другой порт
Nikolay
указывая порт?
Sergey
Ну да
Sergey️
gitlab
а как там?
Nikolay
Ну да, чуда не произошло, надо поспать, а то капитанские вопросы выбивают
Nikolay
а как там?
А что там?
Nikolay
Ну там есть ci
Sergey️
мне нужно хостить этот контейнер
Nikolay
Можно настроить деплой
Nikolay
Если настрою и не забуду, отпишу в лс
Sergey️
то же самое делает docker cloud, но там хостинг нужно прикручивать