Maksym
Доброе утро
Ребят, есть чаты где можно спросить базовые вещи по ci, не обязательно докер? Т.е. бывают затыки типа как более правильно организовать пайплайн, что хранить как артефакт а что лучше налету, как быть с имеджами - один образ для всех окружений или для локал лучше без образа и в таком роде
Sergey
Sergey
"базовые" у всех свои
Никита
Никита
Maksym
чтобы сразу не брать ентерпрайз уровня проект (который в очереди на автоматизацию), взял потренироваться простую ситуацию (относительно).
Тестовый стенд
Новый джанго апп, миграции, база с данными, несколько окружений - локал, стейджинг, прод. Как услугу для всего необходимого взял gitlab, стейджинг на heroku, прод наверное без докера для более красивого случая. Разработка распределенная (т.е. не один человек и не все в транк пушат - гитфлоу к примеру), стадии тестирования релизов.
сразу несколько вопросов
1. при инициализации нового окружения возникает необходимость создавать пользователей (данные приложения/окружения), как или откуда их брать? Описывать в код (инфраструктура как код) как-то не очень красиво, это ведь данные работы, не фикстуры, описывать отдельный пайп и запускать руками - тоже как-то избыточно. Делать все руками - где CI? Таскать дамп - уже не очень все в коде.
2. локальное окружение.
Обычно описываю мейкфайл который билдит, ранает что надо (докер композы), открывает шелы контейнеров - все чтонадо для разработки есть. Но не совсем понятно как быть с имеджами которые билдятся на CI - принято чтобы они имели отношение к локальной разработке или это только для рабочих окружений? т.е. указать и имедж и докерфайл, имедж (с тегом :latest) как кеш использовать или что-то в этом роде.
3. как быть с бекапами и миграциями данных которые как данные приложения, не окружения. К примеру если это сайт и там статьи как часть приложения (к примеру CMS, где вроде как и контент но это часть приложения, статик страницы), как это мержится? тут схожу вывод - выносить в код но не всегда есть такая возможность. Помню еще во времена друпулов/вордпресов было вообще страшно (если такой подход еще актуален)
вот такие вопросы периодическо возникают и отнимают многосил/времени на поиски/чтение блогов и не всегда информация полезна и актуальна
Sergey
дык какой сиай то(
Sergey
тебя и там тоже самое спросят
Sergey
Gitlab/Jenkins/TeamCity?
Maksym
да, гитлаб, CD скорее, но может есть в закладках какие-то книги/наборы практик которые покрывают такие вопросы? Много кних описывают или корпоративную культуку и взаимодействие между отделами (что тоже важно но пока не про это), ли куча воды как настроить и установить докер/дженкинс и возможно где-то будет полезное (но найти не всегда получается). А вот такие практические вопросы периодически возникают, это как пример
Sergey
Maksym
спасиб, наверное практики лучше относительно конкретной системы брать, тонкости могут отличаться (к прмеру bitbucket pipelines не имеют своего registry и тд) и от этого напрямую меняется флоу. Видимо я сильно не того боку смотреть начал
Sergey
=)
Никита
еще один, как и я, ньюфаг прибыл
Никита
мне пока рано в CI, у меня другой мозголюбли хватает, с докером
Ильдар
https://a.d-cd.net/ca6aea4s-960.jpg
Oleg
Как перезапустить pod?
Oleg
NM
Вот кстати полностью соглашусь тоже куча траблов была https://www.webhive.ru/2018/06/13/what-is-wrong-with-coreos/
NM
Пока ничего лучше Centos в проде для докеров не вижу
NM
Никто не юзал для прода https://blog.selectel.ru/budet-ispolneno-gospodin-admiral/ ?
George
George
@magnaZ
NM
да было бы замечатенльо, просто куча проблем возникает в обновлении системного окружения когда нужно что то подкрутить к модулям
George
«Установку Kubernetes я проводил с помощью kubeadm. Первым начал ругаться kubelet заявивший при старте, что версия docker-а слишком новая и типа «используйте на свой страх и риск». Блин — это немного не то, чего я ожидал от стабильной системы заточенной на запуск kubernetes.»
подтвержу. Но это проблема и не системы, и не куба
George
возможно, просто организационный вопрос, что им нужно лучше синхронизироваться с мейнстримом куба
NM
Соглашусь. ТОлько я думаю что можно было хотя бы ansible там оставить в system image 😉
NM
чтобы даже через REST API работать
Andrey
зачем ансибл, если у них ignition?
NM
переходный период увы, много старого от RHEl like шаблонов развертывания
George
я ссылочку на человека с кореос в проде дал
George
есть еще отдельная телеграм группа
George
в общем-то я ничего гипер-криминального не увидел
Jürgen
ничего скро кореос будет в рхеле по самые уши)
NM
Andrey
у них свой рхел :)
Jürgen
Jürgen
не зря кореось уже начали в шифт засовывать
NM
аааа....вот оно что !
Jürgen
ну так уже и панелька от туда переехала так что кореос будет жить
NM
зато умрет atomic 😉
Jürgen
его уже пару лет депрекейтнуть хотят
NM
Как все начиналось ведь хорошо https://www.redhat.com/en/about/press-releases/red-hat-acquire-coreos-expanding-its-kubernetes-and-containers-leadership
Filipp
привет всем. давно не копался в докере и походу что-то упустил в изменениях.
когда я запускаю контейнер
docker run --rm -t -i -v /path/to/project:/var/www php:7.0 bash
а затем внутри
php -S 0.0.0.0:80 -t /var/www
то зная IP контейнера, я могу постучатся на этот сервер с хост машины или даже из другого контейнера (будь он в том же default сети).
вопрос:
что же тогда делает --expose 80 как опция команде run? что с ней, что без нее - я могу достучатся до сервера.
George
Filipp
нет нет) я специально уточнил, как опция команде run
Filipp
я пока что наблюдаю лишь одно отличие с этой опцией: в колонце PORTS при выводе docker ps я вижу этот порт. без опции - не вижу. но доступ есть что так, что эдак.
не понимаю её (опции) истинного предназначения
Filipp
судя по документации, у меня сложилось впечатление, что --expose откроет порт для доступа снаружи контейнера.
чтоб не было последствий даже если и были противомерные попытки "левого процесса" открыть порт на "левом" порту.
это как я это понимал
George
George
вероятно, рудимент от старых времен, имхо
Filipp
George
✙ DarkKC ✙
George
✙ DarkKC ✙
George
https://docs.docker.com/engine/reference/run/#expose-incoming-ports
George
т.е. ВРОДЕ как expose нужен, когда у тебя есть частная сеть МЕЖДУ контейнерами и ты хочешь, чтобы один контейнер ходил в другой, но не через хостовый интерфейс
George
но фактически, по-моему, это никогда не работало. Оно не настраивает правила файрволла, селинукса и прочего. Но может у меня дистрибутивы линукса были не те
George
а линкование контейнеров сейчас вообще депрекейтед
Filipp
невнимательно читаешь
ребята. не будьте столь предвзяты.
> читни выше
> практичски используется только с опцией -P для открытия всего что экспозед
я знаю как использовать EXPOSE из докерфайл опцией -P.
я спрашивал о другом. но спасибо за помощь
Filipp
Filipp
это кажется то, что мне нужно было
Filipp
спасибо за внимание
George
ну, если есть что добавить - добавляй )
George
может и я тоже неправ )
George
@pyToshka а ты что скажешь за expose?
Filipp
ну судя из доки у меня похожее представление было, но я провел эксперимент, и это не подтвердилось. сейчас я вспомнил, что там же куча разных драйверов сети, и вероятно на каком-то из них --expose и нужен будет, т.е. эксперимент у меня не удачный был
Jürgen
эм а что за него сказать он есть))
✙ DarkKC ✙
может и я тоже неправ )
насколько я помню, контейнеры внутри одной докер-сети и без экспоуза видят друг друга полностью... Или я ошибаюсь?
Filipp
George
Filipp
потому и задался вопросом "а expose тогда зачем?"
Jürgen
expose это вообще не про внутренюю сеть
George