Nikita
обычно БД поднимают во втором контейнере
Обычно бд не поднимают в контейнере) Только если локально запустить или интеграционный тест
Nikita
Сомнительное удовольствие менеджерить миграции и дампы в таком подходе
Andrew
да чет особо разницы не ощутил )
Andrew
особенно с дампами..
Alexander
Обычно бд не поднимают в контейнере) Только если локально запустить или интеграционный тест
Вполне поднимают. Разницы особой в контейнере запускать или не в контейнере, нет.
Peter
Сомнительное удовольствие менеджерить миграции и дампы в таком подходе
там такое не требуется, телеграм бот для телеметрии счетчиков и котла отопления
Nikita
там такое не требуется, телеграм бот для телеметрии счетчиков и котла отопления
Если ты собираешься поддерживать приложение, то требуется
Nikita
Вполне поднимают. Разницы особой в контейнере запускать или не в контейнере, нет.
Поднимают то поднимают, просто не рекомендуется https://www.docker.com/blog/how-to-use-the-postgres-docker-official-image/#:~:text=While%20it's%20possible%20to%20use,scale%2C%20which%20can%20be%20challenging.
Nikita
Вполне поднимают. Разницы особой в контейнере запускать или не в контейнере, нет.
https://www.xcubelabs.com/blog/the-advantages-and-disadvantages-of-containers/#:~:text=Containers%20have%20revolutionized%20the%20way,and%20storage%20and%20networking%20challenges.
Andrew
сейчас бы питон-скрипт в кубере поднимать
Andrew
да хоть бы и джава, зачем
Nikita
Потому что это хороший способ использовать инфраструктуру, хорошо ложится на cloud native подход. Заказал вон на Яндекс облаке кластер и базу и шпаришь пет проекты, плохо чтоли? Хорошо!)
Alexander
Peter
возможно у слим-бастер нет команды apt-get, попробуй apt
ваше решение сработало, я отказался от слим-бастера)
Andrey
ваше решение сработало, я отказался от слим-бастера)
кмк сработало бы просто переместить -y
Slach
Народ, а как сделать так чтобы RUN --mount=type=cache,id=clickhouse-backup-gobuild,target=/root/ go build кешировал содержимое /root/ между двумя запусками docker buildx build??? а то выглядит так, будто оно кешируется только между слоями при одной сборке. а не между слоями в несколько сборок...
Rafael
гайз указал в .wslconfig 16 гигов, но докер все равно по факту утилилизурет только 4... название, нахождение и контент конфига валидный, нагрузка- есть, все очень тормозит внутри контейнера куда копать?
Rafael
решил отключением wsl2
Юлиан🦉
Всем привет, есть у меня скажем приложение в композе где есть приложение на fastapi. Как мне можно отлавливать трейсбеки(и возможно стдаут\какой-то дебажный вывод) с определённых ендпойнтов? Как-то я могу подключиться консолью к приложению, например.
Юлиан🦉
можешь использовать docker logs либо использовать exec
Про логс гляну, exec - типа убивать в контейнере приложение и запускать из cli?
Yegor
Про логс гляну, exec - типа убивать в контейнере приложение и запускать из cli?
ты можешь уже запущенный контейнер зайти и там смотреть логи
Юлиан🦉
Что-то понятно, спасибо за направление =)
Pit
Привет. Внезапно выяснили что харбор с датабэкендом в s3 отдает блобы не напрямую, а по сути ссылками с зашитыми в них токенами прямо на s3. По ряду причин нам это нравится не слишком сильно, в основном из-за особенностей тарификации. Под капотоп харбора - суть докер-реджистри, и никаких параметров проксирования я там сходу не нашел https://docs.docker.com/registry/storage-drivers/s3/ Может знает кто какой секрет?
Boris
Docker logs имя_конт
Armen
Добрый день) друзья у кого есть проблема со входом на docker hub? Не могу даже пингануть через консоль, запросы идут но ответ теряется 100%-но
Good
Народ. может кто-то подскажет: как после перезагрузки докера/компа сделать, чтоб состояние контейнеров оставалось таким же? То есть, запускались те, которые были запущены, а те, которые остановлены - не запускались. Потому что сейчас оно пробует запуститься все, конечно, не получается
Good
https://docs.docker.com/config/containers/start-containers-automatically/
Немного не то. Хотелось бы без модификации контейнеров. То есть, вот сейчас так. И чтоб после перезагрузки самого докера он возвращал то же стостояние контейнеров и не запускал те, которые были остановлены
Evgeniy
таким контейнерам при запуске надо указывать что этот контейнер надо перезапускать автоматически
Evgeniy
то что вы хотите возможно вам лучше собрать контейнеры которые запущены и заупстить их после перезапуска но это все вам надо делать в ручную в докере если вы хотите чтобы что то перезапускалось, то в момент запуска указывайте это (сообщайте свои пожелания докеру)
Good
Ну вот вручную не хотелось бы Простотвот есть несколько проектов со своими компоуз файлами, и довольно удобно, когда включаешь и выключаешь их в панели. Но после перезагрузки компа - оно все пробует запустится(
Good
так тебе не нужно чтоб они запускались или нужно?
Мне нужно, чтобы после рестарта докера состояние "запущености" контейнеров оставалось таким же, как было до рестарта
Andrew
там у параметра 4 варианта, один из них тебе точно подойдет
Andrew
ну так укажи у ненужных контейнеров флаг restart: no
Andrew
хотя он и так по умолчанию
Good
Они все нужны)) Просто это разные проекты, и я между ними переключаюсь.
Andrew
тогда никак
Good
Странно, что это не имплементировали. Вроде нужная фича.
Andrew
да не особо
Andrew
обычно все нужные контейнеры нужно запустить, а не запоминать кто там был запущен а кто нет
Good
Ну то есть? Имеется несколько проектов, сейчас работаю с одним, нужно, чтоб он был запущен, а другие - выключены. Если надо переключиться - останавливаю этот, запускаю другой. Очень удобно. Не нужно лазить в консоль и поднимать через up Вот только после перезагрузки они все стартуют и приходится выключать вручную. Тупо
Andrew
баловство какое )
Good
баловство какое )
Кому как) Мне удобно
am1rqr
Всем привет, я столкнулся с проблемой в Docker-контейнере, который запускает Telegram бота и подключается к базе данных PostgreSQL. В логах базы данных я вижу сообщение 'incomplete startup packet', а затем появляется ошибка 'password authentication failed for user "postgres"' с деталями 'Password does not match for user "postgres"'. Я уверен, что пароль верный, и мои настройки подключения в Docker Compose также корректны. Какие могут быть причины для данной ошибки, и как я могу её решить? Пароль, метод хэширования, ожидаемый и фактический хэш проверял
Elvee
Всем привет! У меня есть докер компос файл который собирает мне монгу. Как мне добавить сюда перенос файлов? Сейчас я переношу файл file.key в volume. но я не вижу смысла создать целый volume ради одного файла + мне ещё нужно поменять ему права... Как это грамотно сделать?
Slava
Всем привет! Вопрос к тем, кто работал с portainer: Я создаю stack и в нем пытаюсь запустить существующий docker-compose, но portainer не видит volumes, которые объявлены, видимо потому что portainer сам является docker контейнером Вот часть docker-compose (сокращено ради читабельности): ... api: restart: always container_name: api volumes: - /staging:/app build: context: /staging/api dockerfile: Dockerfile.prod Выдает такую ошибку: failed to deploy a stack: unable to resolve context /staging/api При создании environment я использовал следующую команду: docker run -d -p 9001:9001 --name portainer_staging --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes -v /root/staging:/staging portainer/agent:2.18.4 В которой я расшарил локальные файлы через параметр -v /root/staging:/staging, но это не помогло, ошибка та же самая Я проверил в volumes что лежит в volume staging и он оказался пустым Как мне решить данную проблему? Спасибо
Slava
Может кто помочь с настройкой портейнера? Что-то совсем тяжко
Andrey
1) не надо использовать портейнер 2) где относительно /staging/api лежит Dockerfile.prod?
gaenkov
Может кто помочь с настройкой портейнера? Что-то совсем тяжко
Portainer - это считайте что просто ui для докера. Он не запускает контейнеры "внутри" себя, контейнеры запускаются "рядом" с ним. Вам нужно указать volume в docker-compose как /root/staging:/app и НЕ нужно монтировать /root/staging в portainer.
Ofee
Вопрос про билд и containerfile/dockerfile, я хочу немного странного Допустим, я хочу какой-то файл скопировать в образ, но не в исходном виде, а в каком-то нормализованном Для примера, есть человекочитаемый ./foo.json с отступами, но я не хочу его копировать в образ как есть (например, он слишком большой по сравнению с компактной версией), а хочу сначала пропустить его через jq --compact-output . и уже результат этой команды сохранить в качестве слоя Или как альтернативный пример — пропустить некоторый конфиг через grep -v, чтобы убрать кучу лишних комментариев, которые нужны в исходниках, но совершенно избыточные внутри образа Это возможно? UPD: почему не внешний инструмент: мне нужен самодостаточный докерфайл, я не хочу, чтобы сборка образа зависела ещё от какой-то внешней инфраструктуры UPD: мне подсказали сделать это через multistage. Да, можно, должно сработать, но если есть способ сделать проще и лаконичнее — я бы предпочёл его
Aleksey
Вопрос про билд и containerfile/dockerfile, я хочу немного странного Допустим, я хочу какой-то файл скопировать в образ, но не в исходном виде, а в каком-то нормализованном Для примера, есть человекочитаемый ./foo.json с отступами, но я не хочу его копировать в образ как есть (например, он слишком большой по сравнению с компактной версией), а хочу сначала пропустить его через jq --compact-output . и уже результат этой команды сохранить в качестве слоя Или как альтернативный пример — пропустить некоторый конфиг через grep -v, чтобы убрать кучу лишних комментариев, которые нужны в исходниках, но совершенно избыточные внутри образа Это возможно? UPD: почему не внешний инструмент: мне нужен самодостаточный докерфайл, я не хочу, чтобы сборка образа зависела ещё от какой-то внешней инфраструктуры UPD: мне подсказали сделать это через multistage. Да, можно, должно сработать, но если есть способ сделать проще и лаконичнее — я бы предпочёл его
Привет мултестейдж куда уже проще
Ofee
Привет мултестейдж куда уже проще
Он требует бойлерплейта. В идеале, хотелось бы, чтобы для RUN была какая-то опция, которая умела бы скармливать на вход своей команды файл из репозитория, не скопированный в образ
Evgeniy
Он требует бойлерплейта. В идеале, хотелось бы, чтобы для RUN была какая-то опция, которая умела бы скармливать на вход своей команды файл из репозитория, не скопированный в образ
так ты копируешь такой файлик оригинальный потом в run используешь его (сжимаешь) и создаешь нужный файлик, удаляя шаблон потом эти файлики можно целиком скорпировать в другое место (образ)
Evgeniy
если охото без multistage то на сайте докера читая про multistage там есть пример как это делали раньше
Solyar
Вопрос про билд и containerfile/dockerfile, я хочу немного странного Допустим, я хочу какой-то файл скопировать в образ, но не в исходном виде, а в каком-то нормализованном Для примера, есть человекочитаемый ./foo.json с отступами, но я не хочу его копировать в образ как есть (например, он слишком большой по сравнению с компактной версией), а хочу сначала пропустить его через jq --compact-output . и уже результат этой команды сохранить в качестве слоя Или как альтернативный пример — пропустить некоторый конфиг через grep -v, чтобы убрать кучу лишних комментариев, которые нужны в исходниках, но совершенно избыточные внутри образа Это возможно? UPD: почему не внешний инструмент: мне нужен самодостаточный докерфайл, я не хочу, чтобы сборка образа зависела ещё от какой-то внешней инфраструктуры UPD: мне подсказали сделать это через multistage. Да, можно, должно сработать, но если есть способ сделать проще и лаконичнее — я бы предпочёл его
Мультистейдж для тебя будет проще делаешь что-то типо: FROM stedolan/jq COPY foo.json /tmp/foo.json RUN jq .. > /tmp/final.json FROM main-image:blabla COPY --from=0 /tmp/final.json . и погнал
Solyar
Мультистейдж для тебя будет проще делаешь что-то типо: FROM stedolan/jq COPY foo.json /tmp/foo.json RUN jq .. > /tmp/final.json FROM main-image:blabla COPY --from=0 /tmp/final.json . и погнал
Альтернативный вариант собери свой baseimage со всеми инструментами что тебе нужны и в процессе сборки вызывай jq
Solyar
Еще один вариант. Готовь заранее все что нужно а в Dockerfile уже все готовое пихай
Solyar
Обычно для этого какой-нибудь MAKEFILE пишут который ряд действий делает чтобы упростить жизнь если их надо выполнять постоянно
Ofee
Мультистейдж для тебя будет проще делаешь что-то типо: FROM stedolan/jq COPY foo.json /tmp/foo.json RUN jq .. > /tmp/final.json FROM main-image:blabla COPY --from=0 /tmp/final.json . и погнал
Я же написал, что знаю, как это делается, меня смущает лишь бойлерплейтность решения. Вы же согласитесь, что гипотетический RUN --stdin-file=foo.json jq -c . был бы лучшим решением?
Ofee
Еще один вариант. Готовь заранее все что нужно а в Dockerfile уже все готовое пихай
Но я же об этом тоже написал. Ладно, всем спасибо, я понял, что решение есть, пусть и далеко не элегантное