Anonymous
А разрабы они же часто - поднялось значит работает. И будут править конфиг внутри контейнера
Anonymous
Чего я избежать хочу
Bohdan
какие-то странные разрабы, если честно
у тебя один прод сервак?
Sergey
ты главное разрабов на прод конфиги не пускай
ну их нафих
Bohdan
у меня так
есть docker-compose, файлов несколько - просто docker-compose.yml, docker-compose.server.yml, docker-compose.prod/qa.yml
Sergey
стейдж выдели пусть приводят в порядок - тесты пройдут недельку и пускай
Bohdan
и через энв переменную определяется, где что запускать
Anonymous
Ну в обще я пока только продумываю логику. Хочу на первом этапе докер композом поднимать нужное окружение для приложения и само приложение. Писать в вопрос выше не стал ибо не существенно.
Anonymous
Конфиг хранить на хосте. А не в контейнере. Потом отдать это разрабам. Не нравиться, что появляется человеческий фактор. Прочтёт ли он доку - что надо конфиг положить в правильное место или нет
Anonymous
Просто в теории разрабы могут взять мой докер композ файл и поднять это хоть на своё ноуте
Anonymous
Если им приспичит
Sun
Идея контейнеров в том что они неизменны. Поэтому снаружи контейнеров только данные а конфиг всегда внутри. Если надо изменить конфиг, то собирается новый образ
Sun
И это правильно. В идеале ещё и версию контейнера бампать с каждым изменением
Anonymous
Вот про данные понимаю. Про конфигурирование никогда не считал что они не изменяемые. Подумаю об этом на досуге
Sun
Чтобы на проде можно было ставить прямое указание на версию для деплоя
Anonymous
Но условно конфиг для прода и дева может отличаться
Anonymous
И очень существенно
Sun
Используй какой-нибудь Ansible, чтобы рулить конфиги и сборки.
Sun
Дев — это дев. А ещё есть стейджинг и прод. Так вот стейджинг должен быть один в один как прод, только на версию впереди.
Sun
По идее, дев тебя вообще не волнует — там разработчики делают что хотят.
Sun
А в прод попадает только то что прошло все тесты в стейджинге
Anonymous
Ансибл то понятно. Ладно на счёт конфигов подумаю как правильно. Мысль что они в контейнеры не изменяемые - мне нова.
Anonymous
Так что спасибо за наводку
Sun
Велкам.
Andrey
Всем привет. Вот у меня есть такой кусок в RUN
&& mkdir -p /var/jenkins_home/.m2 \
&& chown -R 1000.1000 /var/jenkins_home/.m2 \
&& ls -la /var/jenkins_home/но почему-то когда я запускаю контейнер, владелец директории у меня root :(
что я не знаю?
Sun
мм, а сепаратор юзер/группы разве бывает точкой?
Sun
да. точно, это было давно.
Sun
что такое 1000?
неймспейс в контейнере и в хосте разные.
Sun
причём, мне помнится, что назначать из контейнера права на артефакты даже по верному гуиду с хоста — не айс идея.
Sun
Я сейчас ссылку не вспомню, но идея была простая: при смене версии контейнера у тебя может смениться гуид контейнерного юзера и всё пойдёт по влажному.
Sergey
services:
minio1:
image: minio/minio:RELEASE.2018-06-09T03-43-35Z
volumes:
- data1:/data
ports:
- "9001:9000"
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
# command: server http://minio1/data http://minio2/data http://minio3/data http://minio4/data
command: server http://minio1/data
volumes:
data1:
driver: host
driver_opts:
source: /home/sat/minio-test/volumes/data1
Ребят как правильно ссылки на тома описывать? Дока в подробности не сильна
Sergey
я объявил проброс томов для сервиса
и хочу в конце композа указать где том лежит
Дмитрий
Привет всем
Дмитрий
почему он не может с 2 параметрами запуститься?
Дмитрий
подскажите что не так
docker run -d --net=host --name=mtproto-proxy --restart=always \
-v proxy-config:/data -e SECRET=secret TAG=tag \
telegrammessenger/proxy:latest
Sergey
ошибка то какая
Дмитрий
ошибка то какая
docker: Error parsing reference: "TAG=tag" is not a valid repository/tag: invalid reference format.
See 'docker run --help'.
Дмитрий
тэг заменил, шоб не палить
Sergey
может тег не разрешен тут?
Sergey
вы же тег образа указали уже
Дмитрий
может тег не разрешен тут?
разрешен, просто там 2 команды, одна на запуск с тэгом, вторая на запуск с секретом
docker run -d --net=host --name=mtproto-proxy --restart=always \
-v proxy-config:/data -e TAG=85174e9e0ffa43c0d3a7167e52175268 \
telegrammessenger/proxy:latest
и
docker run -d --net=host --name=mtproto-proxy --restart=always \
-v proxy-config:/data -e SECRET=b7e70329dcf3721c4239b86ad32a90b8 \
telegrammessenger/proxy
Дмитрий
я решил объединить, но он ругается
Sergey
а без latest дает два указать?
Sergey
различие чисто в этом
Дмитрий
Sergey
а в issues на гитхабе че
Sergey
хотя это ошибка докера а не образа
Bohdan
ммм, а разве когда много энв переменных - не нужно указывать -e на каждую?
Kirill
Bohdan
типа -e SECRET=secret -e TAG=tag
Дмитрий
Дмитрий
Danila
Не встречали удобного docker образа с django, чтобы сразу можно было указать тип базы данных, хост и прочие данные через переменные среды (-е) ?
Sergey
Sergey
а в композе в чем проблема
Sergey
тот же докер только без наркомании в три строки CLI
Sergey
ты кубер-манифесты тоже в cli будешь на образ расписывать для деплоя?)
Sergey
команду на 100 строк
Sergey
ты можешь там хоть 10 образов указать с тонной командных выражений, сетей, томов
Danila
Композ удобен,я его использую. Но мне нужен образ django, где я могу прописать db credentials
Danila
Вот и все
Sergey
commands:
-
пишешь и все
Sergey
собирай свой и указывай что хочешь
Sergey
а че все джангу-докер-базу то юзают)
че не gradle/sbt туда засунуть)
Sergey
шобы поинтереснее
I
Привет всем, расскажите плиз кто как подписывает docker images? Какие бест практики?
Grigorii
у меня, наверное, нубский вопрос, я не силен в сетях. есть сервер A(gitlab), я могу до него достучаться с сервера Б, но из контейнера на сервере Б уже не могу, при этом в инет ходит нормально. тисипидамп на хосте показывает, что запросы из контейнера уходят, но хост как будто не знает в какой контейнер ответ засылать. вроде как с натом связано, но непонятно как пофиксить
Sergey
Sergey
а контейнер с адреса хоста выходит или свой имеет?
Sergey
Sergey
Grigorii
да
Sergey
а network:host выставить тоже нет?