Dima
volumes: - ./scripts:/opt/airflow/scripts
Dima
Dima
как это может выглядеть ?
Dan
твой вопрос непонятен. что как может выглядеть?
Dan
ты же уже ответил сам на свой вопрос по поводу того, где лежат твои скрипты внутри докера в волюме
Dima
Баш команда для запуска скрипта. scripts/test/venv/bin/python scripts/test/main.py -s1 "2021-01-01"
Dima
я немного не понимаю как обратиться правильно
Dan
давай попробуем с начала. скажи, что ты делаешь?
Dan
откуда у тебя эти скрипты?
Dima
хочу из докера через баш запустить скрипт питона, который лежит во внешнем томе
Dan
ок, а файлы откуда? кто код писал?
Dima
да там тест, я писал. просто принт переданного аргумента
Dan
монтируешь волюм, запускаешь контейнер. заходишь в контейнер через exec интерактивный в баш, и запускаешь питоном свой скрипт
Dan
но я не уверен, что тебе нужен венв в питоне в докере
Dan
точнее уверен что не нужен
Dima
сутьв том, что есть 20+ скриптов со своеим env
Dima
и с аргументами. это чисто для теста, что все работает
Dan
и все 20+ скриптов используют разные версии питона с разными настройками?
Dan
env может быть сколько угодно, зачем венв ?
Dima
вообще в докере airflow запущен, не могу через него запустить скрипт питона
Dan
видишь ли
Dan
докер занимается тем же, чем занимается virtualenv
Dima
да, изолированная среда
Dan
только он изолирует процессы, а второй изолирует зависимости
Dan
делать изоляцию в изоляции это неправильно архитектурно
Dan
точнее так: ты МОЖЕШЬ это делать, но это не правильный подход
Dima
в целом, но у меня в докере airflow поднимается, а не отдельный скрипт
Dan
суть докера такова: один контейнер — один процесс
Dan
если ты хранишь в контейнере 20+ скриптов, и хочешь их все запускать в рамках одного контейнера - то ты уже не прав. это таки должны быть 20+ контейнеров
Dima
т.е нарушает суть шедулера который запущен внутри докера?
Dan
появляется шедулер :)
Dan
что за шедулер?
Dan
зачем тебе докер?
Dan
запускай просто на серваке
Dima
https://airflow.apache.org/docs/apache-airflow/stable/tutorial.html#it-s-a-dag-definition-file
Dima
есть такой шедулер airflow
Dima
окей, а можешь подсказать как неправильно сделать?)
Dan
прости, как делать неправильно - я не знаю. а как делать правильно - знаю, но у меня нет сейчас времени заниматься решением твоего вопроса.
Dan
если ты сам не разберёшься к вечеру, то может быть я смогу чем-то помочь
Dima
хорошо, спасибо) мне просто понять как правильно обратиться к файлу из докера через volume
Dan
хорошо, спасибо) мне просто понять как правильно обратиться к файлу из докера через volume
но ты же сам ответил уже себе. ты указал в докерфайле путь, где лежат твои скрипты. ну и обращайся по этим путям же
Dan
https://t.me/ru_docker/86723
Dan
вот же
Dima
volumes: - ./scripts:/opt/airflow/scripts
получается внешний путь к /scripts теперь /opt/airflow/scripts
Dima
я вот этот момент не понимаю)
Dan
нет
Dan
получается, что ты смонтировал свою локальную папку scripts из той, где лежит докерфайл, внутрь контейнера в папку /opt/airflow/scripts
Dan
ты документацию по волюмам хоть бы открыл, чтоли
Dan
🤔
Dima
да пойду гляну, казась что все понятно, но нет)
Dima
еще раз спасиб
Dan
👍
I
привет. хочу реализовать такой сценарий: есть проекты А и Б, есть месседж-брокер через который они коммуницируют. проекты А и Б инициализируются через docker-compose. не ясно как сделать общий контейнер для месседж-брокера, который бы 1) мог быть инициализирован с помощью docker-compose в каждом из проектов; 2) если контейнер с брокером уже запущен через docker-compose одного из проектов, то при запуске второго проекта, запуск брокера игнорируется пока вижу только такие варианты: 1. делать проект В с общими контейнерами 2. запускать 2 контейнера для броекра и шарить между ними диск
Evgeniy
привет. хочу реализовать такой сценарий: есть проекты А и Б, есть месседж-брокер через который они коммуницируют. проекты А и Б инициализируются через docker-compose. не ясно как сделать общий контейнер для месседж-брокера, который бы 1) мог быть инициализирован с помощью docker-compose в каждом из проектов; 2) если контейнер с брокером уже запущен через docker-compose одного из проектов, то при запуске второго проекта, запуск брокера игнорируется пока вижу только такие варианты: 1. делать проект В с общими контейнерами 2. запускать 2 контейнера для броекра и шарить между ними диск
Я тут вижу несколько решений 1. Поместить меседж брокер в один из проектов как внутренний сервис, например проект А, тогда для проекта Б это будет внешний сервис к которому ему надо будет обращаться Из минусов придется прокидывать порт на хост к которому смогут подключаться кто угодно, этот порт бы защитить 2. Меседж брокер можно вынести в отдельный сервис и тогда для проекта А и Б это будет внешний сервис 3. Можно создать network и сервисы обращающиеся к меседж прокеру ещё дополнительно поместить в эту сеть Например можно посмотреть рекомендации по настройки traefik
Evgeniy
Сильно зависит это для разработки делается или для чего
Alex
Добрый день; приветствую тех, кто уважает Docker
Ftfgh
СКкажите кто знает что должно быть в прокси сет хидер в энжинксе с примером? И что будет если там указать что другое?
Ftfgh
🤷‍♂️
Dan
А вот и долгожданный 29 выпуск. С небольшой, но важной задержкой :) Следующий уже будет по-расписанию (но это не точно) https://vk.com/@-208220812-vypusk-29-9-noyabrya-2021
Sergey
А как можно при запуске контейнера автоматом ставить нужную часовую зону в контейнере?
Evgeniy
docker run -e TZ=<твоя TZ> image
Evgeniy
только один вопрос, нафига это надо ?
Sergey
TZ не всегда коректно ставит зону например в образе на centos время вроде правильно показывает но смещение показывает 0 а не +2 если смотреть через timedatectl. Соответственно прилоюение не так пишет время
Sergey
Соответственно надо настраивать через /etc/timezone и localtime
Evgeniy
ну как вариант в entrypoint положить простановку таймзоны из TZ но опять же вопрос почему этим должен заниматься докер а не приложение ?
Evgeniy
по моему опыту лучше всего чтобы все было в одной TZ которая UTC
Evgeniy
и если где то надо выводить время то уже его конвертировать в часовую зону пользователя
Sergey
Там телефония которая сама пишет время о событиях а приложуха получаеться пишет правильно время и получаеться нестыковка
Evgeniy
так если телефония в utc и приложуха в utc они будут одинаковое время писать а уже это время можно потом конвертировать пользователю в его часовой пояс (если в этом есть необходимость) обычно просто указывают TZ
Ofee
Можно ли как-то прервать podman build в процессе очень долгого шага так, чтобы убить исполняющийся сейчас процесс, но сохранить состояние в образ?
Sergii
Всем привет! На Винде такое должно работать? Нужно в корень диска намапить, но ничего не происходит. Если указать имя диска (что не ок), то все ок - файлы появляются.
Sergii
Мне кажется, что раньше такое работало... Но могу ошибаться
Ruben
Здравствуйте. В Azure Kubernetes Service GRPC запрос между сервисами ASP.NET 5 выдает ошибку. Status(StatusCode=\u0022Internal\u0022, Detail=\u0022Error starting gRPC call. HttpRequestException: An error occurred while sending the request. Http2ConnectionException: The HTTP/2 server sent invalid data on the connection
Dan
Всем привет! Картина такая: сначала всё работает, пишу docker-compose stop, всё завершается нормально, но nginx вылетает с кодом 137
Dan
@nelkor
Dan
Вообще 137 это oom