Alena
есть режим отладки docker, который позволяет отслеживать и фильтровать входящие http запросы
🆂🅴🆁🅶🅴🆈
надо понизить версии: 1) либо скрипты 2) или программы в которых эти депрекейтед ещё не очень депрекейтед
Alena
это понятно, но вот прям сейчас задача стоит так - отфильтровать запрос...
🆂🅴🆁🅶🅴🆈
понятно, не готовы смореть шире, решайте задачу конечно
Алексей
что значит отфильтровать? то что на экране (скриншоте выше) - отдает пхп
Алексей
Докер этим не управляет
Alena
ок, спс
Alena
так, на всякий случай, вдруг кому пригодится. Для того, чтоб изменить настройки php.ini в контейнере docker, можно применить команду sed. С ней все сложилось))
Alena
вывод ошибок depricated - это как раз php.ini. Переменная error_reporting
Alena
извините, не туда))
Александр🦅🇺🇸
извините, не туда))
неа, не извиним
Kenya-West
Я джва дня разбирался, почему: --- extra_hosts: - "host.internal.docker:host-gateway" - не работает на Убунтах. Задача стояла, чтобы контейнер с NGINX проксировал на голый хост трафик. Открывал порт на хосте через залупбек типа 127.0.0.1:9323, открывал вообще для всего Интернета 0.0.0.0:9323 (ломайте кто хочет!), но результат тот же: host.internal.docker не резолвился в контейнере. Помогло лишь: --- network_mode: host - и очень аккуратное редактирование конфига NGINX, чтобы он не пытался отобрать 80 и 443 у хоста. P. S. Это просто жалоба, что Docker ну вот такой, какой есть. Люблю я его, голубого такого кiта...
Kenya-West
Я джва дня разбирался, почему: --- extra_hosts: - "host.internal.docker:host-gateway" - не работает на Убунтах. Задача стояла, чтобы контейнер с NGINX проксировал на голый хост трафик. Открывал порт на хосте через залупбек типа 127.0.0.1:9323, открывал вообще для всего Интернета 0.0.0.0:9323 (ломайте кто хочет!), но результат тот же: host.internal.docker не резолвился в контейнере. Помогло лишь: --- network_mode: host - и очень аккуратное редактирование конфига NGINX, чтобы он не пытался отобрать 80 и 443 у хоста. P. S. Это просто жалоба, что Docker ну вот такой, какой есть. Люблю я его, голубого такого кiта...
Всем привет! Стоит задача заэкспозить метрики node_exporter и нативный экспортер docker'а (которые, как известно, работают на хосте) через контейнер с Caddy (который не в network_mode: host). ОК, заставил эти серверы с метриками подняться в докеровском мосту на 172.17.0.1, порты 9100 и 9323 соответственно. Как из сети докера пробиться к этим эндпоинтам? Прикол в том, что host.internal.docker без network_mode: host не заработает.
Kenya-West
BraVo123
ну или немного подумать и использовать нужные инструменты, например просмотр логов или tcpdump ..
Vyacheslav
да нет, это известная проблема конфликта docker и ufw, есть даже тулза docker-ufw
поэтому прокси всякие используют, для единой точки входа трафика, чтобы не мучится с попыткой подружить виртуальные сети докера и фаерволл
P
Господа, а правда что docker image под arm на маке и под arm на линуксе - это разные бинари внутри? мы сча стянули на мак докер пулом имедж с grafana/grafana-enterprise потом этот имедж пушнули в ECR амазона потом в кубере с гравитон тачками и амазон линухом запустили под и он сказал - кря exec /bin/bash: exec format error как это понять и где про это почитать?
P
(стягивать имедж нужно по дайджесту чтобы воспроизвести насколько я понял - но это не точно)
Матвей
Вот: https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/
P
Глянул. Там говорится о простых мульти-арх имеджах А вот о разнице имеджей под arm для амазон линя и для арм мака не говорится
TokaToka
Глянул. Там говорится о простых мульти-арх имеджах А вот о разнице имеджей под arm для амазон линя и для арм мака не говорится
Ну так армов много разных, это семейство архитетур, у которых общее только в базе. Ищи манифесты под нужный и собирай ручками, просто ручками)
Митяй
доброго вечера всем! не найдется ли добр человек, который носом ткнет и на пальцах объяснит, как сделать так, что б у контейнеров были свои мак-адреса и отображались они в домашней сети как живые железки? или хотя бы направить в какую сторону копать по данному вопросу? заранее спасибо
NeymarJr
#book
x`
docker-compose.base.yml services: code: build: context: . dockerfile: Dockerfile container_name: code restart: on-failure env_file: - .env networks: - appnet backend: extends: service: code container_name: backend ports: - 8000:8000 restart: on-failure command: sh -c "alembic upgrade head && python -m src.radiate.entrypoint.web" environment: - DB_HOST=postgresql networks: - appnet depends_on: - postgresql - redis postgresql: image: postgres:17.5-bookworm container_name: postgresql expose: - 5433 ports: - 5433:5432 volumes: - pgdata:/var/lib/postgresql/data restart: always environment: - POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_USER=${DB_USER} healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER}"] interval: 1s timeout: 5s retries: 10 networks: - appnet redis: image: redis:latest container_name: redis ports: - 6380:6379 networks: - appnet command: redis-server --bind 0.0.0.0 --requirepass "$REDIS_PASSWORD" --appendonly yes --appendfsync everysec healthcheck: test: ["CMD-SHELL", "redis-cli ping | grep PONG"] interval: 1s timeout: 5s retries: 10 worker: container_name: worker build: context: . dockerfile: Dockerfile env_file: - .env command: taskiq worker --ack-type when_saved radiate.entrypoint.broker:setup_taskiq_broker -fsd -tp **/jobs.py depends_on: - redis networks: - appnet scheduler: container_name: scheduler build: context: . dockerfile: Dockerfile env_file: - .env command: taskiq scheduler radiate.entrypoint.broker:setup_taskiq_scheduler -fsd -tp **/jobs.py depends_on: - redis networks: - appnet volumes: pgdata: networks: appnet: driver: bridge name: appnet docker-compose.dev.yml services: backend: extends: file: docker-compose.base.yml service: backend develop: watch: - path: . action: rebuild target: . depends_on: - postgresql - redis networks: - appnet postgresql: extends: file: docker-compose.base.yml service: postgresql networks: - appnet redis: extends: file: docker-compose.base.yml service: redis networks: - appnet worker: extends: file: docker-compose.base.yml service: worker depends_on: - redis scheduler: extends: file: docker-compose.base.yml service: scheduler depends_on: - redis volumes: pgdata: networks: appnet: driver: bridge name: appnet Dockerfile FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim ENV UV_COMPILE_BYTECODE=1 UV_LINK_MODE=copy ENV UV_PYTHON_DOWNLOADS=0 WORKDIR /home/app RUN --mount=type=cache,target=/root/.cache/uv \ --mount=type=bind,source=uv.lock,target=uv.lock \ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ uv sync --locked --no-install-project --no-dev COPY . /home/app RUN --mount=type=cache,target=/root/.cache/uv \ uv sync --locked --no-dev ENV PATH="/home/app/.venv/bin:$PATH У меня по какой то причине начали дублироваться процессы или че это вообще такое я хз. Я запускаю докер композ и у меня в консоли все дублируется, хотя процессов если смотреть через docker ps не прибавилось. Запускаю командой - docker compose -f docker-compose.dev.yml up --build
x`
x`
это связано как то с версией докера?
x`
может баг я хз
x`
это просто после обновления случилось
Akane
docker-compose.base.yml services: code: build: context: . dockerfile: Dockerfile container_name: code restart: on-failure env_file: - .env networks: - appnet backend: extends: service: code container_name: backend ports: - 8000:8000 restart: on-failure command: sh -c "alembic upgrade head && python -m src.radiate.entrypoint.web" environment: - DB_HOST=postgresql networks: - appnet depends_on: - postgresql - redis postgresql: image: postgres:17.5-bookworm container_name: postgresql expose: - 5433 ports: - 5433:5432 volumes: - pgdata:/var/lib/postgresql/data restart: always environment: - POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_USER=${DB_USER} healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER}"] interval: 1s timeout: 5s retries: 10 networks: - appnet redis: image: redis:latest container_name: redis ports: - 6380:6379 networks: - appnet command: redis-server --bind 0.0.0.0 --requirepass "$REDIS_PASSWORD" --appendonly yes --appendfsync everysec healthcheck: test: ["CMD-SHELL", "redis-cli ping | grep PONG"] interval: 1s timeout: 5s retries: 10 worker: container_name: worker build: context: . dockerfile: Dockerfile env_file: - .env command: taskiq worker --ack-type when_saved radiate.entrypoint.broker:setup_taskiq_broker -fsd -tp **/jobs.py depends_on: - redis networks: - appnet scheduler: container_name: scheduler build: context: . dockerfile: Dockerfile env_file: - .env command: taskiq scheduler radiate.entrypoint.broker:setup_taskiq_scheduler -fsd -tp **/jobs.py depends_on: - redis networks: - appnet volumes: pgdata: networks: appnet: driver: bridge name: appnet docker-compose.dev.yml services: backend: extends: file: docker-compose.base.yml service: backend develop: watch: - path: . action: rebuild target: . depends_on: - postgresql - redis networks: - appnet postgresql: extends: file: docker-compose.base.yml service: postgresql networks: - appnet redis: extends: file: docker-compose.base.yml service: redis networks: - appnet worker: extends: file: docker-compose.base.yml service: worker depends_on: - redis scheduler: extends: file: docker-compose.base.yml service: scheduler depends_on: - redis volumes: pgdata: networks: appnet: driver: bridge name: appnet Dockerfile FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim ENV UV_COMPILE_BYTECODE=1 UV_LINK_MODE=copy ENV UV_PYTHON_DOWNLOADS=0 WORKDIR /home/app RUN --mount=type=cache,target=/root/.cache/uv \ --mount=type=bind,source=uv.lock,target=uv.lock \ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ uv sync --locked --no-install-project --no-dev COPY . /home/app RUN --mount=type=cache,target=/root/.cache/uv \ uv sync --locked --no-dev ENV PATH="/home/app/.venv/bin:$PATH У меня по какой то причине начали дублироваться процессы или че это вообще такое я хз. Я запускаю докер композ и у меня в консоли все дублируется, хотя процессов если смотреть через docker ps не прибавилось. Запускаю командой - docker compose -f docker-compose.dev.yml up --build
может у тебя два хендлера в логгере, которые пишут в тремиал?
x`
может у тебя два хендлера в логгере, которые пишут в тремиал?
да не как будто, оно пофиксилось как то само уже лол
x`
я хз как, но щас окей
Mihail
помогите подебажить проблему в wsl внутри контейнера /prometheus # wget http://xps:9182/metrics Connecting to xps:9182 (172.19.0.6:9182) wget: can't connect to remote host (172.19.0.6): Connection refused тут ип должен быть с локальной сети, как на хостовой машине докера: $ wget http://xps:9182/metrics --2025-08-15 00:52:21-- http://xps:9182/metrics Resolving xps (xps)... 172.23.144.1, 172.27.144.1, 192.168.0.123, ... Connecting to xps (xps)|172.23.144.1|:9182... connected. ... доп инфа из контейнера /prometheus # cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00:: ip6-localnet ff00:: ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.19.0.4 1f4b19d57e7b /prometheus # cat /etc/resolv.conf # Generated by Docker Engine. # This file can be edited; Docker Engine will not make further changes once it # has been modified. nameserver 127.0.0.11 options ndots:0 # Based on host file: '/etc/resolv.conf' (internal resolver) # ExtServers: [host(192.168.65.7)] # Overrides: [] # Option ndots from: internal /prometheus # ifconfig eth0 Link encap:Ethernet HWaddr 0A:B3:E4:7C:E1:E3 inet addr:172.19.0.4 Bcast:172.19.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:434991 errors:0 dropped:0 overruns:0 frame:0 TX packets:301334 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:589661679 (562.3 MiB) TX bytes:34788973 (33.1 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:88773 errors:0 dropped:0 overruns:0 frame:0 TX packets:88773 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5202746 (4.9 MiB) TX bytes:5202746 (4.9 MiB) докер используется внутри дефолтной ubuntu в wsl, а не в своей отдельной - docker-desktop xps это имя хоста в локальной сети. Адрес внутри него не резолвится на локалхост, т.к. я убрал это в hosts wsl. итого мне не понятно, откуда 172.19.0.6 взялся вообще. Куда дальше смотреть? в мосты?
Mihail
все, я разобрался. Я сознательно указал в одном из контейренров хостнейм совпадающий с хостнеймом хоста, хоть и контейнер по другому называется. А этот контейнер находится в этой же сети, как и контейнер из исходной проблемы. Вот думаю, что делать.
Voiduin
все, я разобрался. Я сознательно указал в одном из контейренров хостнейм совпадающий с хостнеймом хоста, хоть и контейнер по другому называется. А этот контейнер находится в этой же сети, как и контейнер из исходной проблемы. Вот думаю, что делать.
переименовать можт хостнейм в контейнере и больше так не делать?) ну и wsl не использовать - тк там можете найти еще больше тонких граблей на которые потратите время и потом все равно установите или виртуалку или vds начнете использовать лично я уже проходил этот путь и вам может время сэкономлю
Mihail
они там tensorflow починили под wsl ?
запускал, вроде норм. О какой проблеме идет речь?
Khafizov Salavat
Всем привет. Кто может подсказать на счёт такой проблемы с прокси. Использую vite для сборки веба, прописал server с портом 3000. nginx я развертываю в docker и прописал для веба http://host.docker.internal:3000. Веб запускаю не в докере, а через консоль. При переходе на localhost:3000 ошибка 502 или 503
Khafizov Salavat
Привет а в логах что
спасибо, оказывается в логах прокси сервера все было написано, оказывается ограничение стояло на кол-во запросов в сек
Komron
Добрый день, коллеги. Я настроил свой собственный ssl сертификат. Чтобы подключиться с https. Но когда я отправляю запрос для подключения, он выводит мне ошибку: time="2025-09-22T13:01:10+05:00" level=info msg="Error logging in to endpoint, trying next endpoint" endpoint="{false https://193.111.11.98:5050 false false false 0xc000102700}" error="Get \"https://193.111.11.98:5050/v2/\": tls: failed to verify certificate: x509: certificate signed by unknown authority" Get "https://193.111.11.98:5050/v2/": tls: failed to verify certificate: x509: certificate signed by unknown authority restart docker тоже сделал но не получается
Komron
Alexey
цепочку вашего чудо сертификата проверьте
Alexey
и лучше все же имена использовать а не ip
Komron
и лучше все же имена использовать а не ip
хорошо, просто пока домен не выдали. Поэтому
Alexander
тоже так и сделал но не выходит
В общем, я бы делал доменное имя, на нормальном порту. Так все работает. По крайней мере у меня.
Махмуд
коллеги, подскажите какой-нибудь проект на golang чтобы: 1) код работал с ("инклюдил") библиотеками (сетевыми, например) 2) имел микроскопический бинарник (даже не 10 МБ, а желательно прям 1..2 МБ или меньше) 3) был достаточно распространённым/популярным (5+ тыс. звёзд) цель - протестировать сборку и упаковку в контейнер
BraVo123
гы , golang < 1Мб , да там хеллоуворд больше :))
Махмуд
гы , golang < 1Мб , да там хеллоуворд больше :))
я там внимательнее перечитал условия и оказалось, что нужно сделать мультистейдж без поддержки его докердемоном
Dmitriii
Ребят, а у вас пулятся образы с докер хаба без авторизации?
Махмуд
я там внимательнее перечитал условия и оказалось, что нужно сделать мультистейдж без поддержки его докердемоном
ещё три вопросика: 1) существует ли аналог "чистого" alpine но с предустановленными build-essentials для golang? 2) если да - то squashed ли этот образ? Или он (alpine-go-build-essentials) изначально со слоями внутри? Есть ли для его DockerFile? (см. следующий пункт) 3) есть ли смысл взять этот потенциальный (я не гуглил существует ли он в природе, это просто пришедшая в голову идея) alpine-go-build-essentials, а потом за один шаг (слой): 3.1 установить библиотеки 3.2 собрать бинарь 3.3 почистить кэши, И 3.4 удалить то, что не нужно на этапе запуска т.е. по сути из alpine-go-build-essentials сделать обратно "голый" alpine (но с моим бинарём + его зависимости этапа запуска) ? потому что: && понавставлять в один RUN умеет и джун, то, что у команды COPY может быть больше двух аргументов - тоже в принципе логично но вот разорвать последовательность RUN-COPY-RUN или COPY-RUN-COPY (чтобы склеить в один слой) - слишком геморойно напомню, речь о LECACY версиях демона (до добавления поддержки multistage)
Ruslan
Привет всем) Можно ли кого-то попросить выгрузить 2 образа node:20-alpine И mongo:8.0 На целевом хосте нет доступа в инет(он в закрытом контуре) И нет доступа к системе с которой можно выгрузить быстро Буду очень благодарен Вот команды если кто-то не знает docker pull node:20-alpine docker save -o node-20-alpine.tar node:20-alpine
Alexander
А потом в base64 и сюда запостить? )
Ruslan
Можно мне в личку двумя архивами Если кто-то может
Ruslan
А потом в base64 и сюда запостить? )
Сможешь помочь пожалуйста? 📝
Alexander
Я без компа сейчас
Ruslan
Понял) В любом случае спасибо за то, что отозвался
Ruslan
А что мешает самому? Ведь что с телеги качать, что с докерхаба - доступ в нет нужен.
Доступ в тг с рабочки есть) А к докер хабу) Согласовывать 3 недели 😞
Алексей
К яндексу нет доступа?
Ruslan
К яндексу нет доступа?
Нет( Вообще не смотрит в мир Супер ограничения( Я бы не просил сюда) Это уже последняя идея
Алексей
Зато к телеге есть. Я бы безопасников повесил за одно место
Ruslan
Зато к телеге есть. Я бы безопасников повесил за одно место
Это не мне решать) Я просто помощи попросил