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 на всякий случай. В общем ничего сложного.
Nurik
Nurik
Konstantin
Спасибо за помощь. Буду пробовать.
Kyrylo
Kyrylo
А гитлаб омнибусом ставил? Я включил реджистри в конфигурации, перезапустил гитлаб
Kyrylo
он показывает что реджистри работает, но у меня что-то не получается им воспользоваться
Nurik
Nurik
Я хз, я только так смог решить проблему. Возможно и правда, не нужно было поднимать регистр на проде.
Nurik
Nurik
Bogdan (SirEdvin)
Nurik
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
мапать конфиг не вариант
Alexander
Vladyslav
Всем привет. Очень нужна помощь. Собираю с помощью docker-compose -> [app, mysql, nginx, redis]. Появилась нужда запускать несколько app с разными env. Поискал в доках как в compose вставить env, но нашел только "env_file", то есть мне каждый раз нужно в гит коммитить чтобы запустить с теми или иными данными свою app'ку. Знаю только один вариант: отсоеденить от compose свой app и запускать отдельно связавши со всем что через compose запустил, чтобы можно было env разные юзать. Это единственный вариант ? Если пояснил криво ситуацию, поправите, уточню моменты. Заранее спасибо
Svyatoslav
Rinat
ansible (templates/env) далее провайдешь в шаблоне env нужные переменные и запускаешь docker-compose up -d
Rinat
в ансибл шаблоне делаешь логику короче
Alexander
R
Здравствуйте, подскажите пожалуйста как решить проблему с volume на windows, в vagrant есть config.vm.synced_folder, но не могу найти нечто подобное у docker. Проблема заключается в том что изменения видны в docker-machine но не видны в контейнере
Anatolii
Приветствую. Подскажите есть ли возможность описанный в docker-compose.yml контейнер не запускать при docker-compose up?
Dmitry
Artem
закоментировать его в композе 😉
Anatolii
Закоментировать конечно подходит под вопрос=), но я бы хотел его ручками запускать иногда.
Anatolii
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
Anatolii
Gleb
Sergey️
Всем привет, может подскажет кто-нибудь
Нужен некий аналог heroku, но для docker - контейнера
- Бесплатно хотя бы один мелкий маложрущий контейнер с работой 24/7
- Авто деплой из ветки открытого git repo ( без логина и привязки аккаунта github ) или возможность накостылить в стиле "while true do git pull"
- One-click deploy кнопка (как у хероку или docker cloud), с возможностью настройки пары переменных окружения
Я так понимаю, такое почти невозможно, может есть что-то близко к этому?)
Nikita
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️
Nikolay
Ну да, чуда не произошло, надо поспать, а то капитанские вопросы выбивают
Nikolay
Nikolay
Ну там есть ci
Sergey️
мне нужно хостить этот контейнер
Nikolay
Можно настроить деплой
Nikolay
Если настрою и не забуду, отпишу в лс
Sergey️
то же самое делает docker cloud, но там хостинг нужно прикручивать