Чекаво
Aleksey
Это почему же она наивная?
Ну она милая и наивная вспоминаешь себя предыдущего когда сидел с портами разбирался а патом раз.
Artyom
можно ли в настройках docker desktop поменять "networkType": "gvisor" на bridge?
Egor
Подскажите пожалуйста, я хочу взять макбук м1 про 16 512, с докером щас все ок, то читал, что бывают косяки с ним в 21-22 году ?
central
central
Но ОЗУ ест как не в себя
Виталий
инсекьюр-реджестри же достаточно, чтобы пушить/пулить в реджестри
Max
Всем привет. Кто подскажет как лучше собирать ансибле в контейнере докер использовать alpine образ или полноценный ? Разница в 100 метров , но в alpine нет конфига ансибле и ssh-сервер, только если самому все прописать и ставить. На практике что лучше использовать ?
Konstantin
Konstantin
Потому что бывает что для модуля могут быть зависимости
Konstantin
Каждый раз пересобирать образ чтобы очередную либу добавить
Konstantin
Такое себе
Max
Евгений
Всем привет! Кто может помочь в решении вопроса? Суть в следующем. У меня имеется два сервера шлюза, через которые все остальные сервера имеют доступ к интернету. Один основной, второй резервный. Оба они имеют постоянный доступ к интернету. Так же на них крутится nginx, через который получаем доступ от клиентов (интернета) к серверам с контейнерами. На Локальных серверах с контенерами прописаны шлюзы на один сервер для доступа к интернет. Теперь суть. После остановки основного сервера. перестали работать контейнеры. Мы поменяли гетвей на локальных серверах. Это не помогло! Затем рестартанули контейнер это тоже не помогло! Перебилд контейнера тоже не помог. В общем контейнеры не начали работать пока не запустили основной сервер. не можем понять почему так ведут себя контейнеры.
Евгений
Контейнеры в swarm
Евгений
В общем весь функционал который был направлен наружу в интернет перестал работать.
Akane
Евгений
смотрел, но привязки к конкретному шлюзу не увидел, там все на маскарадах и проброске портов завязано, но может я просто не догоняю
Евгений
Может вам нужно конкретнее что-нибудь показать?
Евгений
docker inspect и iptables?
Евгений
Просто на резевный шлюз надеяться не приходится, пока не поймем почему так себя ведут контейнеры, -это для нас было полной неожиданностью.
Siroga 🇺🇦
Смотрите таблицу маршрутизации на хостах swarm. С них есть доступ в интернет через 2й шлюз при отключенном первом?
Евгений
Евгений
В нем о шлюзах ни чего!
Евгений
только порты и виртуальные сети докер и контейнеров
Евгений
Вот так выглядит iptables на котором висят контейнеры, на одном сервере, на втором мы увидем то же самое
Евгений
Евгений
Siroga 🇺🇦
ip r s
Siroga 🇺🇦
т.е. ip route show если полностью
Siroga 🇺🇦
А выхлоп текстом а не картинками, можна на pastebin или подобное
Евгений
ip r s
ip r s
default via 192.168.0.51 dev virbr0 proto static
default via 192.168.0.52 dev virbr0 proto static
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.18.0.0/16 dev docker_gwbridge proto kernel scope link src 172.18.0.1
192.168.0.0/24 dev virbr0 proto kernel scope link src 192.168.0.54
12:11:26 root@x122:/scripts#
Евгений
т.е. ip route show если полностью
ip route show
default via 192.168.0.51 dev virbr0 proto static
default via 192.168.0.52 dev virbr0 proto static
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.18.0.0/16 dev docker_gwbridge proto kernel scope link src 172.18.0.1
192.168.0.0/24 dev virbr0 proto kernel scope link src 192.168.0.54
12:11:59 root@x122:/scripts#
Евгений
Евгений
Это был один из серверов сварм
вот второй
ip r s
default via 192.168.0.52 dev eno1 proto static
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.18.0.0/16 dev docker_gwbridge proto kernel scope link src 172.18.0.1
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.53
root@x121:/var# ip route show
default via 192.168.0.52 dev eno1 proto static
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.18.0.0/16 dev docker_gwbridge proto kernel scope link src 172.18.0.1
192.168.0.0/24 dev eno1 proto kernel scope link src 192.168.0.53
Евгений
netplane первый СВАРМ
/etc/netplan/01-netcfg.yaml [----] 28 L:[ 1+13 14/ 18] *(327 / 406b) 0010 0x00A [*][X]
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: false
bridges:
virbr0:
interfaces: [eno1]
addresses: [ 192.168.0.54/24 ]
gateway4: 192.168.0.52
nameservers:
addresses: [212.19.149.178, 212.19.149.226]
Евгений
конфиг второго сервера СВАРМ
/etc/netplan/01-netcfg.yaml [----] 6 L:[ 1+ 9 10/ 14] *(248 / 345b) 0110 0x06E [*][X]
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
eno1:
addresses: [ 192.168.0.53/24 ]
gateway4: 192.168.0.52
nameservers:
addresses:
- 212.19.149.178.
- 212.19.149.226
Евгений
Сейчас гетвей прописан на резервный шлюз
Евгений
Но нам это не помогло, пока не запустили сервер первого шлюза
Siroga 🇺🇦
У Вас на первом сервере два маршрута по умолчанию. 1й маршрут на неработающий шлюз .51. Судя по всему на втором сервере swarm у Вас должен быть интернет с самого хоста потому как маршрут указан через .52
Siroga 🇺🇦
А еще чтобы избежать плясок со сменой шлюза на хостах, настройте VRRP/Keepalived или подобное на шлюзах
Евгений
Да на первом сервере это сейчас так! Почему остался первый до сей поры не понятно (Сам шлюз 51 сейчас включен и работает) Настройки меняли путем правки конфига netplan и перезапуском netplane try, затем применили настройку enter. шлюз второй 52 появился а первый не пропал. Остался поднятым до сих пор
Евгений
Получается что по умолчанию трафик шел на 51 сервер, а 52 игнорил?
Siroga 🇺🇦
Шлюз на .51 первый в списке и будет использоваться в независимости рабочий он или нет
Евгений
Евгений
командами шлюзы не прописывали
Евгений
В теории если 51 шлюз удалить то при выключении 51 контейнеры должны без танцев с бубном переключится на 52. Правильно я понимаю?
Siroga 🇺🇦
Контейнеры для выхода в интернет будут использовать шлюз настроенный на хостовой машине. Если там все будет правильно, то и у контейнеров проблем не будет. Легко проверяется простыми тестами
Евгений
Siroga 🇺🇦
Что еще за виртуальный ІР для доступа из вне?
Евгений
Евгений
подключены в один свич датацентра
Евгений
если один сервер выключается второй получает виртуальный ip 99
Siroga 🇺🇦
При инициализации исходящего соединения из контейнера в интернет используется таблица маршрутизации хостовой системы. У Вас на первом хосте такая таблица была некореткно настроена
Евгений
Все бы ничего но весь трафик nginx шел на 52 -резервный, при выключении первого 51-го, было неожиданно что часть функций потерялась, но как мы поняли это было из за того что остался старый шлюз
Евгений
Евгений
Siroga 🇺🇦
Да. Если приходит запрос от внешнего клиента - то проблем быть не должно в конкретном описанном случае. Потому что ответный трафик (из контейнера) будет идти на тот ІР с которого пришел запрос. А Вашем случае 52
Siroga 🇺🇦
Евгений
Ну ок! Спасибо за разбор ситуации! Осталось только протестировать это все. и сделать автоматическую корректную смену шлюзов. Как нетплан меня разочаровал! Из за того что не вырубил шлюз выключенного сервера. Замену шлюзов вроде сделали по фэншую, с перезапуском netplan try
DSI
Здраствуйте можете пожалуюста помоч с докер файлом
FROM python:3.10-alpine
WORKDIR /app
COPY ./requirements.txt .
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
RUN apk add --no-cache bash wkhtmltopdf
COPY . .
CMD ["uvicorn", "main:app", "--reload", "--host", "0.0.0.0", "--port", "8000"]
это мой докер файл
мне надо установить wkhtmltopdf не почемуто выдает ошибку негде не могу найти с интернета
celery_1 | Traceback (most recent call last):
celery_1 | File "/usr/local/lib/python3.10/site-packages/celery/app/trace.py", line 477, in trace_task
celery_1 | R = retval = fun(*args, **kwargs)
celery_1 | File "/usr/local/lib/python3.10/site-packages/celery/app/trace.py", line 760, in __protected_call__
celery_1 | return self.run(*args, **kwargs)
celery_1 | File "/app/market/celeryapp.py", line 78, in convert_html_to_pdf
celery_1 | conf = Configuration(wkhtmltopdf='/usr/bin/wkhtmltopdf')
celery_1 | File "/usr/local/lib/python3.10/site-packages/pdfkit/configuration.py", line 38, in __init__
celery_1 | raise IOError('No wkhtmltopdf executable found: "%s"\n'
celery_1 | OSError: No wkhtmltopdf executable found: "/usr/bin/wkhtmltopdf"
celery_1 | If this file exists please check that this process can read it or you can pass path to it manually in method call, check README. Otherwise please install wkhtmltopdf - https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf
это ошибка
я использовал его с pdfkit для конвертатци HTML в PDF с Celery
from pdfkit.configuration import Configuration
@celery.task()
def convert_html_to_pdf(url, pdf_file_path):
conf = Configuration(wkhtmltopdf='/usr/bin/wkhtmltopdf')
pdfkit.from_url(url, pdf_file_path, configuration=conf)
это мой селерй таск
Ivan
Здраствуйте можете пожалуюста помоч с докер файлом
FROM python:3.10-alpine
WORKDIR /app
COPY ./requirements.txt .
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
RUN apk add --no-cache bash wkhtmltopdf
COPY . .
CMD ["uvicorn", "main:app", "--reload", "--host", "0.0.0.0", "--port", "8000"]
это мой докер файл
мне надо установить wkhtmltopdf не почемуто выдает ошибку негде не могу найти с интернета
celery_1 | Traceback (most recent call last):
celery_1 | File "/usr/local/lib/python3.10/site-packages/celery/app/trace.py", line 477, in trace_task
celery_1 | R = retval = fun(*args, **kwargs)
celery_1 | File "/usr/local/lib/python3.10/site-packages/celery/app/trace.py", line 760, in __protected_call__
celery_1 | return self.run(*args, **kwargs)
celery_1 | File "/app/market/celeryapp.py", line 78, in convert_html_to_pdf
celery_1 | conf = Configuration(wkhtmltopdf='/usr/bin/wkhtmltopdf')
celery_1 | File "/usr/local/lib/python3.10/site-packages/pdfkit/configuration.py", line 38, in __init__
celery_1 | raise IOError('No wkhtmltopdf executable found: "%s"\n'
celery_1 | OSError: No wkhtmltopdf executable found: "/usr/bin/wkhtmltopdf"
celery_1 | If this file exists please check that this process can read it or you can pass path to it manually in method call, check README. Otherwise please install wkhtmltopdf - https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf
это ошибка
я использовал его с pdfkit для конвертатци HTML в PDF с Celery
from pdfkit.configuration import Configuration
@celery.task()
def convert_html_to_pdf(url, pdf_file_path):
conf = Configuration(wkhtmltopdf='/usr/bin/wkhtmltopdf')
pdfkit.from_url(url, pdf_file_path, configuration=conf)
это мой селерй таск
а в контейнере точно есть эта тула?
Ivan
запусти с фризом и проверь что внутри
DSI
Здраствуйте можете пожалуюста помоч с докер файлом
FROM python:3.10-alpine
WORKDIR /app
COPY ./requirements.txt .
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
RUN apk add --no-cache bash wkhtmltopdf
COPY . .
CMD ["uvicorn", "main:app", "--reload", "--host", "0.0.0.0", "--port", "8000"]
это мой докер файл
мне надо установить wkhtmltopdf не почемуто выдает ошибку негде не могу найти с интернета
celery_1 | Traceback (most recent call last):
celery_1 | File "/usr/local/lib/python3.10/site-packages/celery/app/trace.py", line 477, in trace_task
celery_1 | R = retval = fun(*args, **kwargs)
celery_1 | File "/usr/local/lib/python3.10/site-packages/celery/app/trace.py", line 760, in __protected_call__
celery_1 | return self.run(*args, **kwargs)
celery_1 | File "/app/market/celeryapp.py", line 78, in convert_html_to_pdf
celery_1 | conf = Configuration(wkhtmltopdf='/usr/bin/wkhtmltopdf')
celery_1 | File "/usr/local/lib/python3.10/site-packages/pdfkit/configuration.py", line 38, in __init__
celery_1 | raise IOError('No wkhtmltopdf executable found: "%s"\n'
celery_1 | OSError: No wkhtmltopdf executable found: "/usr/bin/wkhtmltopdf"
celery_1 | If this file exists please check that this process can read it or you can pass path to it manually in method call, check README. Otherwise please install wkhtmltopdf - https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf
это ошибка
я использовал его с pdfkit для конвертатци HTML в PDF с Celery
from pdfkit.configuration import Configuration
@celery.task()
def convert_html_to_pdf(url, pdf_file_path):
conf = Configuration(wkhtmltopdf='/usr/bin/wkhtmltopdf')
pdfkit.from_url(url, pdf_file_path, configuration=conf)
это мой селерй таск
выдает ошибку до запуска контейнера не может найти wkhtmltopdf
DSI
а в контейнере точно есть эта тула?
doniyor@doniyor-HP-Laptop-15-da1xxx:~/PycharmProjects/FastApiCVmaker$ docker-compose up --build
Building celery
[+] Building 47.9s (11/12) docker:default
=> [internal] load build definition from Dockerfile 0.6s
=> => transferring dockerfile: 323B 0.0s
=> [internal] load .dockerignore 0.8s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/python:3.10-alpine 3.7s
=> [auth] library/python:pull token for registry-1.docker.io 0.0s
=> [internal] load build context 0.7s
=> => transferring context: 699.29kB 0.2s
=> [1/7] FROM docker.io/library/python:3.10-alpine@sha256:8fc9419f65880c3f7a127f6243962b3bdee6543ecbd3d6188cacdf3c52e35dca 0.0s
=> CACHED [2/7] WORKDIR /app 0.0s
=> CACHED [3/7] COPY ./requirements.txt . 0.0s
=> CACHED [4/7] RUN pip install --upgrade pip 0.0s
=> CACHED [5/7] RUN pip install -r requirements.txt 0.0s
=> ERROR [6/7] RUN apk add --no-cache bash wkhtmltopdf 42.4s
------
> [6/7] RUN apk add --no-cache bash wkhtmltopdf:
2.757 fetch https://dl-cdn.alpinelinux.org/alpine/v3.19/main/x86_64/APKINDEX.tar.gz
5.123 fetch https://dl-cdn.alpinelinux.org/alpine/v3.19/community/x86_64/APKINDEX.tar.gz
41.36 ERROR: unable to select packages:
41.36 wkhtmltopdf (no such package):
41.36 required by: world[wkhtmltopdf]
------
ERROR: failed to solve: executor failed running [/bin/sh -c apk add --no-cache bash wkhtmltopdf]: exit code: 1
ERROR: Service 'celery' failed to build : Build failed
DSI
DSI
Alexander
В альпине нет такого пакета.
DSI
где есть?
Ivan
где есть?
посмотри варианты с добавлением репозиториев в которых этот пакет есть
Ivan
ты точно гуглил?
DSI
да не смог найти
Ivan
RUN echo 'https://dl-cdn.alpinelinux.org/alpine/v3.14/community' >> /etc/apk/repositories
RUN echo 'https://dl-cdn.alpinelinux.org/alpine/v3.14/main' >> /etc/apk/repositories
RUN apk add --no-cache wkhtmltopdf
DSI
DSI
Vladimir
Доброго дня!
Кто имел дело с утилитой мониторинга контейнеров ctop. Скажите, что означает у некоторых контейнеров uptime -5s