George
12.05.2019
12:13:05
Т.е. именно, что построить secrets lifecycle management
Sergey
12.05.2019
12:14:10
Если есть рут, то приплыли
если есть рут - то да, приплыли. потому этот вариант надо рассматривать последним с точки зрения рисков (там по другому вопросы решаются)
есть другие проблемы - представь что у тебя вротпресс какой в контейнере или еще какое мракобесие. Или недоразработчик оставил какую-то отладочную информацию. И прочее. И секреты ты в переменных окружения хранишь.
Если токен для волта там - то у тебя обычно доступ на внешку к апишке волта нету. Потому токен (который ты должен раз в недельку ротацию делать) экспоузить не так критично. А вот остальные секреты - это уже другое.
Ну и в целом я бы как первый пункт чеклиста делал бы "отрезать доступ с внешки в внутренним ресурсам типа базы"
Google
Sergey
12.05.2019
12:17:32
ну то есть к вопросу управления секретами стоит возвращаться когда ты уже знаешь как можно к ним подобраться.
и какие риски если вдруг заэкспоузят пароль от твоей базы. Если помимо секретов ты и остальные вещи нормально делаешь - то риски от экспоуза таких данных низки
а вот если у тебя там какие-нибудь секретные ключи для работы с... хз... секретный ключь от биткойн кошелька, токены от всяких сэндгридов/мэйлганов и прочее... все что можно заюзать отдельно и получить доступ из вне. тут надо уже запариваться с секретами.
Опять же, с точки зрения рисков (а тут риск эксптуатации уязвомисотей приложения выше чем доступ к контейнеру, при этом даже риск выполнениия произвольного кода не столь высок) надо смотреть что куда прятать и что куда ложить можно.
а там дальше уже есть вопрос кому внутри команды можно видеть секреты, как их хранить (тут опять же волт, git crypt и прочее), как их пробрасывать и т.д. Это все уже отдельный вопрос и я полагаю что в основном это интересует @dmvw34 . Возможно я не прав но тогда вопрос составлен неверно
Dmitry
12.05.2019
12:33:35
В данный момент меня интересует передача в контейнер данных подключения к БД и генерация конфига.
George
12.05.2019
12:34:22
Alexander
12.05.2019
13:24:03
Привет.
Вопрос от почти новичка.
Вот есть гитлаб. Есть у него раннер на шелле.
На самом раннере установлен и движок докера и даже компоуз.
Есть пайплайн гитлаба, в котором он подключается к этому раннеру и пытается запустить команду docker build с тегом и путем. Но в логах неудачной джобы пишет, что не может найти путь к докерфайлу.
В гит-репозитории докерфайл лежит относительно gitlab-ci.yaml в папке /src/ui/Dockerfile.
Что-то как не пишу я строку с билдом, он все никак этот файл не видит.
Что я делаю не так? Или мне надо на раннер его копирнуть через cp?
George
12.05.2019
13:28:09
- pwd
- ls -la
- cd ./src/ui
- docker build
Или
- docker build -f ./src/ui/Dockerfile ./src/ui
Andrey
12.05.2019
13:29:52
я про докер файл
Google
Andrey
12.05.2019
13:30:06
в гите
ildar
12.05.2019
13:37:55
George
12.05.2019
13:38:20
Вообще нефиг корень проекта засорять
Alexander
12.05.2019
13:46:10
В общем решилось через две строчки.
Лол, но pwd мне подсказал, что не так.
Cp ./src/ui/Dockerfile .
Docker build -t ui .
А так подкаталогов, как и докерфайлов много. Они все отдельно, дабы не засорять корень(мне показалось это ок)
Nikolay
12.05.2019
14:57:44
Подскажите пожалуйста, volume прокидываются во время билда образа или же во время старта контейнера?
George
12.05.2019
14:58:11
во время старта контейнера
Nikolay
12.05.2019
14:58:48
Andrey
12.05.2019
14:58:52
Nikolay
12.05.2019
15:01:48
Существует ли какой то способ автоматизированно контролировать контейнеры? Через апи к примеру запускать новый контейнер с нужными аргументами, останавливать и т.п. Так же хранить инфу, запускался ли контейнер с данными аргументами или нет
Или же что то своё надо писать?
Vadim
12.05.2019
15:02:53
кубернейтс?
George
12.05.2019
15:04:04
или что нужно?
Данила
12.05.2019
15:04:42
Nikolay
12.05.2019
15:06:05
Просто возможностей не знаю. Главная задачка - динамично поднимать новые контейнеры с динамичными аргументами, затем о каждом хранить инфу, даже если он остановлен и если надо запускать заного. Пример - под каждого пользователя будет запускаться свой контейнер.
Данила
12.05.2019
15:07:12
Ну, используйте kubernetes
Nikolay
12.05.2019
15:07:15
То есть если нет инфы о контейнере остановленном/запущенном, то создать новый конфиг для его запуска ну и по условиям запускать и останавливать его
Google
George
12.05.2019
15:07:36
ну, автоматизацию запуска - я предложил
для остального - да, к сожалению, кубернетес. Или мезос-номад
Nikolay
12.05.2019
15:08:04
Данила
12.05.2019
15:08:47
Nikolay
12.05.2019
15:09:53
Andrey
12.05.2019
15:10:16
Что имеется ввиду
Nikolay
12.05.2019
15:10:40
Основной докер контейнер
Внутри которого крутится приложение, которое будет детектить онлайн/оффлайн пользователя
Данила
12.05.2019
15:12:01
Nikolay
12.05.2019
15:12:33
Данила
12.05.2019
15:13:03
Docker Swarm нативный, да и будет попроще кубера для Ваших целей
George
12.05.2019
15:13:16
именование контейнеров
и тогда стейт хранить не придется
Nikolay
12.05.2019
15:14:16
единственное, что для каждого нового контейнера будут прокидываться volume базовые, которые уже будут модифицироваться в зависимости от действий пользователя
тут кажись уже надо будет всё таки свою приблуду пилить для хранения инфы о volum'ах
Данила
12.05.2019
15:15:37
Через команду docker info Вы можете посмотреть, что и куда у Вас в контейнере примонтировано
Google
Nikolay
12.05.2019
15:18:37
о, спс
Данила
12.05.2019
15:19:17
Никитяо
13.05.2019
08:17:36
подскажите нормальные варианты, надо бэкапить базу percona в докере, на innodb, желательно не поднимать никакие контейнеры и не перенастраивать основной контейнер, крайне желательно без остановки
1) натравить xtrabackup на директорию волюма /var/lib/docker/volumes/...
2) docker export и уже оттуда бэкапить
George
13.05.2019
08:18:06
да и вообще - что мешает тупо сделать лвм бекап тома вместе с volume докера?
Никитяо
13.05.2019
08:19:08
George
13.05.2019
08:19:18
ну, не худший - точно
Никитяо
13.05.2019
08:20:01
а база не развалится?
George
13.05.2019
08:20:14
от чего?
от снапшота? нет. А вот бекап - нужно проверять
пугает, что много элементов
бд -> docker -> файловая система хоста
Andrey
13.05.2019
08:20:52
от снапшота не развалится innodb?
при активной записи в неё
Никитяо
13.05.2019
08:21:14
Andrey
13.05.2019
08:23:20
дак когда снимешь снапшот - он уже будет неконсистентный. буфферы же
восстановишь - попытается восстановиться, но гарантии нет, что восстановится (даблврайт и тд)
George
13.05.2019
08:28:42
?
https://www.lullabot.com/articles/mysql-backups-using-lvm-snapshots
Google
George
13.05.2019
08:29:24
народ делает так
https://www.digitalocean.com/community/tutorials/how-to-back-up-a-mysql-database-to-spaces-using-lvm-snapshots
Andrey
13.05.2019
08:36:35
а, ну вот, да: FLUSH TABLES WITH READ LOCK