Kana
Ок, спасибо
Дмитрий
Ребят, подскажите пожалуйста, с решением следующей ситуации: Есть несколько контейнеров внутри сети А (к примеру сервис на PHP и БД), есть контейнер из сети Б (сервис на PHP). Как сервису из сети Б обращаться к БД из сети А , как прокинуть порт / или что-то еще , что бы был доступ?
Anonymous
Сети физические?
Дмитрий
Нет, создаваемые внутри докер файла
Дмитрий
То-есть 2 разные сборки docker-compose
Дмитрий
Но запущенные на одной машине
Anonymous
Хм
Roman
То-есть 2 разные сборки docker-compose
в одной надо expose, в другой network: host
Roman
только если у тебя не мак
Roman
или по нормальному создавать сеть и подключить в оба
Anonymous
network_mode: host на оба контейнера в сервисах что нужно связать и тогда они будут работать через 0.0.0.0 на хост мошине (так даже они могут постучаться на другую машину)
Дмитрий
Дмитрий
Спасибо за помощь, пойду делать))
Anonymous
вот так тогда делай, хоть это и не "кошерно" :)
Это простой вариант, есть сложный через создание сети в докере, но я использовал только один
Anonymous
Спасибо за помощь, пойду делать))
Есть одна проблема, возможно сервис не смогут нормально работать между собой, поэтому пробрось link
Дмитрий
А есть ли ваш просто или сложный варианты где-то в открытых источниках (githab к примеру) что бы посмотреть, как нужно делать правильно?
Anonymous
Он настолько прост что просто дописываешь строчку когда в нужный сервис
Anonymous
Всем привет Хотел выразить благодарность данному сообществу за помощь Спасибо ребята, что откликнулись в трудние дни сдачи проекта Еле закрылись с виндой В другой раз буду все делать на линуксе)
Дмитрий
А связь тогда между контейнерами сугубо через 0.0.0.0: и для каждого свой порт?
Дмитрий
Понял, спасибо большое!
Anonymous
В докер композ должны отличаться
Anonymous
О, и ещё один труженик в devops
Я не девопс Обычный мамкин программист )
Anonymous
Ясно
Minor
Пытаюсь запустить в докере: django-nginx https Не работает. может кто помочь что не так? https://github.com/vavilon/question/blob/master/config/nginx/nginx.conf
Andrey
с 80 порта идёт редирект на хттпс, а с 443 proxy_pass обратно?
Timur
Привет!
Timur
Столкнулся с проблемой обратного проксирования на nginx. Есть бэкенд и фронтенд. Они общаются через nginx. Всё лежит в контейнерах. И вот тут начинается пляски :) Когда фрнтенд идет по локальному URLна бэк и не доходит с ошибкой 127.0.0.1 connect refused. У меня складывается ощущение что: 1. фронтеднт по домену получается IP из файлика hosts на хосте 2. фронтенд идём по этому IP, но внутри своего контейра и получает ничего. Их определённо можно подружить. Подскажите плиз в какую сторону копать
freezlite
А multistage образы которые потом откидываются кэшируются ?
Aleksey
кешируются не имиджи а слои
Aleksey
в том числе промежуточные сборочные слои
freezlite
В статье о лучших практиках в разделе о контексте(https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#understand-build-context) Есть такая цитата Inadvertently including files that are not necessary for building an image results in a larger build context and larger image size. This can increase the time to build the image, time to pull and push it, and the container runtime size. Почему при билде имеет значение контекст а не непосредственно файлы в инструкции "COPY/ADD" ? И как я вообще в папке с помощью контекста выбрать конкретные файлы чтобы ускорить билд ?
freezlite
кешируются не имиджи а слои
Какими словами оперировать не суть важно, но кэшит он всетаки имейджы исходя из офф доки When building an image, Docker steps through the instructions in your Dockerfile, executing each in the order specified. As each instruction is examined, Docker looks for an existing image in its cache that it can reuse, rather than creating a new (duplicate) image.
Aleksey
Приятно говорить с человеком который читает доку.
Sebor▂▅▇█▓▒░
В статье о лучших практиках в разделе о контексте(https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#understand-build-context) Есть такая цитата Inadvertently including files that are not necessary for building an image results in a larger build context and larger image size. This can increase the time to build the image, time to pull and push it, and the container runtime size. Почему при билде имеет значение контекст а не непосредственно файлы в инструкции "COPY/ADD" ? И как я вообще в папке с помощью контекста выбрать конкретные файлы чтобы ускорить билд ?
Контекст больше влияет именно на сборку. Каждый раз, когда ты делаешь билд, докер читает все файлы в переданном контексте. Можешь даже сам заметить, если зппустишь docker build в директории с большим количеством данных. Copy/add влияют на размер конечного образа. Кстати, кэш у докера работает как раз в связке с контекстом. Для управления контекстом можно использовать dockerignore
Anton
Всем привет, нужна ваша помощь. Создал докер файл, который основан на crontab и python. Устанавливаю все модули пайтон, но крон их не видит
Anton
Anton
Anton
это мой крон
Anton
Anton
баш скрипт
Anton
Если запустить баш скрипт с помощью ENTRYPOINT, скрипт отрабатывает и дальше ничего
Anton
Есть какие нибудь варианты?
Artem
Всем привет, нужна ваша помощь. Создал докер файл, который основан на crontab и python. Устанавливаю все модули пайтон, но крон их не видит
Не понятно, что должно произойти, и какая ошибка. Попробуй в баш скрипте использовать полный путь до .py файла
Anton
Это и есть полный путь до bash Должен запуститься этот скрипт и отправить запрос на сервер Ошибка Traceback (most recent call last): File "/code/app/bxCurrency.py", line 3, in <module> from bitrix24 import Bitrix24 File "/code/app/bitrix24.py", line 8, in <module> from requests import adapters, post, exceptions ImportError: No module named requests
Anton
Дело в том, что модуль этот установлен, но видимо python не видит их из bash скрипта
Anton
можно в крон напрямую прописать "python /code/app/bxCurrency.py" - результат идентичный
Artem
Попробуй в докерфайле поставить питон и его модули от юзера cron
Anton
Как это сделать?)
Artem
Как это сделать?)
Команда USER вроде
Andrey
это мой крон
Крон, докер.. Ухх
Anton
Вот файл
Anton
sudo docker build --tag cur:latest .
Anton
sudo docker run -it --volume `pwd`/tmp:/tmp cur:latest
Andrey
sudo docker run -it --volume `pwd`/tmp:/tmp cur:latest
И что ты этим хочешь получить ?
Andrey
ну это совсем плохо...ради чего твой контейнер должен жить ?
Anton
Если вдвух словах
Anton
То он обновляет курс валют в битрикс24
Anton
раз в 12 часов
Anton
--volume `pwd`/tmp:/tmp это для того, чтобы отследить ошибки
Anton
Получается он не нужен...
Anton
Но дело ведь даже нев этом
Anton
(я про флаг)
Andrey
какой флаг...что за цмд?
Anton
CMD — описывает команду с аргументами, которую нужно выполнить когда контейнер будет запущен. Аргументы могут быть переопределены при запуске контейнера. В файле может присутствовать лишь одна инструкция CMD.
freezlite
Докер нормально кэшит инструкцию ONBUILD RUN ? Каждый раз запускает эту инструкции вместо того чтобы взять из кэша
Anna
Коллеги, привет. Ставил ли кто-то Докер на Федора версии 32? В доках к докеру этой версии нет, а 30 и 31 на VM ставятся криво с черным экраном
Dmitry
то чувство когда у тебя 29 и нет времени обновиться))
Tadeusz
podman ставь
Vadim
привет, подскажите пожалуйста, у меня есть образ сделанный на основе dockerfile , в нем у меня есть CMD start.sh , в этом start.sh у меня есть if [[ $START == "1" ]] then blabla fi , как передать при docker run --rm --it image -e START=1 , я пробовал так , но в скрипте не отловить
Andrew
Сделайте в скрипте echo этой переменной
Andrew
или else echo fail: START=$START;