Sergey
=)
Tigran
Всем привет! Подскажите такую вещь, пожалуйста. Если я хочу собрать один docker image (python, add ., pip install, вот это вот всё) и запустить компоузом несколько раз с разной command, можно в docker-compose.yml как-то один раз image прописать и переиспользовать, или надо будет в каждом сервисе build указывать? Как вы вообще обычно оформляете проект, когда несколько сервисов из одного питон-проекта надо запустить?
Kirill
1. Не используем питон xD
Tigran
Не то чтобы дело было в питоне
Tigran
image: ... ?
Anonymous
Как?
Команду указать с помощью command: ...
Tigran
Типа, мне надо отдельно прописать сервис с build и image, а в остальных поставить depends_on и image?
Anonymous
Образ соответственно services: service: image: yourimage:latest
Tigran
И ещё, можно несколько сервисов на одном хосте запустить?
Kirill
Скалирование смотри
Tigran
чтобы они могли друг к другу обращаться по localhost:port
Kirill
Они должны быть в одном нетворке и будут доступны по имени сервиса
Kirill
Ну compose сам для всех сервисов создаёт нетворк
Tigran
это понятно
Boris
Таким образом обратиться к контейнеру можно будет не как container_name:port
Boris
а host.name.com:port
pa[aad
а host.name.com:port
Я так понимаю это внутри контейнера
Кылыч
привет всем. вручную вожу через ssh docker stop $(docker ps -q) все норм. но на гитлаб ci ругается "docker stop" requires at least 1 argument(s).
Кылыч
в чем может быть проблема?
Кылыч
и запущенные контейнеры там есть кстати. из-за этого failed: port is already allocated.
Mikhail
А что там показывает docker ps -q ?
Кылыч
Прикол в том что вручную показывает. То есть список не пустой
Кылыч
Mikhail
Где список то?
Кылыч
Ну вот там ошибка. Порт уже занят т.к есть запущенный контейнер. Но прикол он невидим через gitlab-ci
Кылыч
Думаю тоже другое решение нужно смотреть
Oleg
кто-нибудь поднимал mongodb через docker-compose.yml ?
Oleg
использую параметр MONGO_INITDB_DATABASE=mydbname, но этот параметр игорируется, база не создается, работает только одна база по умолчанию: admin
Oleg
конфиг такой-же https://stackoverflow.com/questions/48324357/enable-mongo-authentication-using-docker-compose
Михаил
Добрый день, может кто прояснить ситуацию: На ubuntu не стоит postgres, но postgres используется в docker-compose контейнере, однако не смотря на то, что контейнер остановлен, при повторном запуске я получаю что порт 5432 уже используется, смотрю на вывод: sudo netstat -ntpl: Активные соединения с интернетом (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1847/mysqld tcp 0 0 127.0.0.1:63342 0.0.0.0:* LISTEN 4065/java tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 723/systemd-resolve tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1058/cupsd tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1597/postgres tcp 0 0 127.0.0.1:6942 0.0.0.0:* LISTEN 4065/java tcp6 0 0 :::80 :::* LISTEN 1744/apache2 tcp6 0 0 ::1:631 :::* LISTEN 1058/cupsd вижу что порт занят процессом postgres, так вот вопрос как так получилось, ведь докер контейнер остановлен и как исправить эту ситуацию в целом
Richard
зайкисолнышки, помогите, пожалуйста, я знаю, что вы очень хорошие: есть три контейнера: какой-нибудь spam, ham и eggs. как сделать так, что бы к spam и ham мог обращаться только eggs и никто более?
Richard
в один нетворк запихнуть?
как это правильно гуглить, или хотя бы где читать? я просто материалы особо то найти не могу по этой теме...
Richard
еще очень странны вопрос: а можно к контейнеру прицепить mac-адрес?))
Richard
Все указывается в docker-compose
😱😱😱 ну я и мудак, соре
Richard
Ok Google Docker network В чем проблема?
мне потребовалось на осознание, как работает нетворкинг в докере >7 часов. хотя тема-то оказалось простейшей фейспалм просто. (не хвастаюсь, не жалуюсь, просто думаю, может есть смысл для русского школяра сделать перевод документации на эту тему? 🤔)
Richard
ok google докер практическое руководство
ноуп, его первым делом прочитал, то что не требовалось там не нашел
Sergey
ноуп, его первым делом прочитал, то что не требовалось там не нашел
мэн, чесслово у тебя стопицот ресурсов НЕ ИЩИ ТЫ ГОТОВОЕ изучи что есть, выяви с этого то что требуется и сделай
Richard
мэн, чесслово у тебя стопицот ресурсов НЕ ИЩИ ТЫ ГОТОВОЕ изучи что есть, выяви с этого то что требуется и сделай
чув, вот представь: делаешь ты такой проект, у которого сроки не просто горят, а сам сатана от них получает ожоги пятой степени. нужно тебе найти что-то готовое на пару недел работы, что бы ну вот просто работало, хоть с костылями, но работало, а через месяц придется все равно пересматривать архитектуру всей системы. и вот вопрос: что правильней такой ситуации — не осознавая сути за 1 день найти готове решение, или за неделю всей командой осознать целиком устройство части докера?
Richard
ежу понятно, что правильней погрузиться в тему целиком и понимать как она работает, а не рецепты и хаки искать, но, мать его, ну вот нет времени на это.
Sergey
чув, вот представь: делаешь ты такой проект, у которого сроки не просто горят, а сам сатана от них получает ожоги пятой степени. нужно тебе найти что-то готовое на пару недел работы, что бы ну вот просто работало, хоть с костылями, но работало, а через месяц придется все равно пересматривать архитектуру всей системы. и вот вопрос: что правильней такой ситуации — не осознавая сути за 1 день найти готове решение, или за неделю всей командой осознать целиком устройство части докера?
нуок 1. почему таски прилетают некомпетентному человеку это раз 2. что правильнее в такой ситуации: один раз где то по хауту собрать небезопасное\костыльное решение, или знать то, с чем ты работаешь и как сделать из этого эффективный продукт, а не выковыривать потом из этого говнокод 3. а если ты сам взялся за этот треш, то собсна вопрос, а нахрена, если ты не умеешь 4. если сроки горят, значит косяк в выстроенных бизнес процессах компании\заказчика, и это явно не проблема разработчика
Sergey
а больше некому это что проект на 1 человека?))
Anonymous
(Проконсультировать в ЛС)
Richard
а больше некому это что проект на 1 человека?))
на 4: фронт, бэк, маркетинг и бюрократия
Anonymous
Кстати, такой вопрос. У меня есть Ubuntu Fan overlay сеть, работающая между несколькими физическими хостами. К этой сети подключены LXC контейнеры, которые располагаются на различных хостах. Как сделать так, чтобы LXC контейнер A на хосте b1 мог обращаться по хостнейму к Docker контейнеру B на хосте b2 ?
Anonymous
обращаться куда то за резолвом наверное
А пустить контейнер Docker в эту сеть не вариант?
Sergey
А пустить контейнер Docker в эту сеть не вариант?
ты можешь попробовать, я до такой степени не упарывался, обычно как правило делают среду гомогенной
Anonymous
ты можешь попробовать, я до такой степени не упарывался, обычно как правило делают среду гомогенной
Просто использование LXC контейнеров для БД и других сервисов - это оверхед по использованию дискового пространства.
Anonymous
Какой pm...
Evgenii
Какой pm...
Ну кто бабки платит значит))
Sergey
У них там 4 человека всего
ичо что 4 человека вон в semrush в команду девопса искали команда тоже примерно такого состава просто трушного админа под контейнеризацию и кубер нет
Sergey
стандартная небольшая команда под проект
Sergey
хм.. кто-то использует континиус интегрейшн с докером ? для деплоя на бой
Alexey
хм.. кто-то использует континиус интегрейшн с докером ? для деплоя на бой
нет. в этом чате вообще мало кто докер использует.
Sergey
Sergey
😁😁😁
Bogdan (SirEdvin)
А что сейчас можно использовать для нормального docker volume драйвера или лучше все-таки через хост?)
Grigorii
Привет, подскажите, а как при старте контейнера подставлять уникальные значения в конфигурационные файлы? Например у меня есть один образ с nginx/php-fpm/redis и я хочу чтобы при старте контейнера в конфигах менялись значения. В голову приходит подтягивать шаблоны конфигов из гита при сборке образа и sed'ом менять там значения через docker-compose + переменные окружения либо в d-c.yml прямо прописывать, либо в отдельный файл выносить. Это для дев среды. cd /tmp/configs_templats && for f in $(for i in $(grep -rwln "DOMAINA" --exclude-dir=.* --exclude=Jenkinsfile); do echo $PWD\/$i; done); do sed -i 's#DOMAINA#$BRANCH#g' $f; done && sed -i 's/DB_USER/$DB_USER/g; s/DB_PASSWD/$DB_PASSWD/g ' /tmp/docker_alpha_pet_conf/dev.php
Grigorii
Как-то проще это делается?