George
если не при сборке, а уже в работающий контейнер?
В работающий плохая идея. Но раз так, то скорее верная идея энтрипойнт захачить и в него положить скрипт, который будет делать обновление сертов + вызов основной проги внутри контейнера
George
а есть ли смысл держать каждый сервис на отдельном сервере (не считая БД) или лучше взять помощнее впску и все 7-9 сервисов через докер-компоуз поднимать? сервисы разной нагрузки
От бюджета и доп требований зависит. Может у тебя там банковский процессинг и строгие ограничения по изоляции процессов. Спойлер. В докере изоляция не абсолютная
Iwan
Доброе утро, кто юзал/использует watchtower для обновления. Подскажите, как можно решить проблему: Error response from daemon: Get http://172.22.130.59:8083/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)" ПО в качестве репы Nexus 3.17
George
ну, проблема явно не в самом вотчтавере.
George
это нексус отшибает сам докер
George
может у тебя 100500 скачиваний одновременно происходит. Попробуй начать с того, чтобы уменьшить количество потоков для загрузки образов
George
а дальше посмотрим. Ну, и конфигурацию расскажи поподробнее
Iwan
может у тебя 100500 скачиваний одновременно происходит. Попробуй начать с того, чтобы уменьшить количество потоков для загрузки образов
watchtower'e интвервал опроса стоит 1 минута, по началу всё было норм А потом стал сыпать этим. 100500 скачиваний нет, в репе всего 5 приложений, время от времени собираются и заливаются.
George
можно по-подробнее про неабсолютную изоляцию? неймспейсы же. или типа из-за общего ядра?
да, абсолютно верно. Там много моментов, которые могут бомбануть
George
начиная от того, что есть ресурсы в ядре, которые шарятся, но при этом они не биллингуются по каждому неймспейсу
George
и кончая тем, что ты все равно шаришь кванты времени, озу, iops и сеть
Anonymous
Привет народ, кто нибудь прикручивал данную конструкцию в пайпу jenkins? http://reangdblog.blogspot.com/2016/05/chrome-docker.html
George
у товарища хром в докере с гуем
George
как ты в жене будешь гуй эмулировать?
Лицеисточка
Ого, тут есть коммьюнити, круто Появился вопрос. Хочу упаковать в контейнеры связку из Python приложения и Mongo. Dockerfile приложения: FROM python:3.7-alpine WORKDIR /code ENV FLASK_APP app.py ENV FLASK_RUN_HOST 0.0.0.0 ENV FLASK_RUN_PORT 8080 RUN apk add --no-cache gcc musl-dev linux-headers COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . . CMD ["flask", "run"] docker-compose: version: '3' services: app: build: . ports: - "8080:8080" mongodb: image: "mongo:latest" Но при этом когда я делаю docker-compose -f /home/keddad/PycharmProjects/yad_rest/docker-compose.yml up -d mongodb app Mongo поднимается нормально, а app падает с ошибкой Creating yad_rest_app_1 ... error ERROR: for yad_rest_app_1 Cannot start service app: driver failed programming external connectivity on endpoint yad_rest_app_1 (14a9234df2e9112c91d75bf2e2a8146e717090df20d115cfb423d263c971f515): Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: address already in use При этом на хост-машине 8080 не занят: sudo netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:47496 localhost:45415 ESTABLISHED tcp 0 0 localhost:57850 localhost:46831 ESTABLISHED tcp 0 0 keddad:37824 ec2-34-211-42-228:https ESTABLISHED tcp 0 0 keddad:39198 185.5.160.50.rasco:http ESTABLISHED tcp 0 0 localhost:46831 localhost:57850 ESTABLISHED tcp 0 0 localhost:45415 localhost:47496 ESTABLISHED tcp 0 0 keddad:39802 lb-140-82-113-25-:https ESTABLISHED tcp 0 0 keddad:58948 149.154.167.51:https ESTABLISHED Что я делаю не так?
central
два раза случайно один и тот же порт не указали при запуске
Danila
Добрый день. Есть ли у Docker фаайрвол для оверлейной сети (weave network)? Мне нужно что-то вроде Kubernetes Network Policies, но на голом докере, без кубера.
George
Ого, тут есть коммьюнити, круто Появился вопрос. Хочу упаковать в контейнеры связку из Python приложения и Mongo. Dockerfile приложения: FROM python:3.7-alpine WORKDIR /code ENV FLASK_APP app.py ENV FLASK_RUN_HOST 0.0.0.0 ENV FLASK_RUN_PORT 8080 RUN apk add --no-cache gcc musl-dev linux-headers COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . . CMD ["flask", "run"] docker-compose: version: '3' services: app: build: . ports: - "8080:8080" mongodb: image: "mongo:latest" Но при этом когда я делаю docker-compose -f /home/keddad/PycharmProjects/yad_rest/docker-compose.yml up -d mongodb app Mongo поднимается нормально, а app падает с ошибкой Creating yad_rest_app_1 ... error ERROR: for yad_rest_app_1 Cannot start service app: driver failed programming external connectivity on endpoint yad_rest_app_1 (14a9234df2e9112c91d75bf2e2a8146e717090df20d115cfb423d263c971f515): Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: address already in use При этом на хост-машине 8080 не занят: sudo netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:47496 localhost:45415 ESTABLISHED tcp 0 0 localhost:57850 localhost:46831 ESTABLISHED tcp 0 0 keddad:37824 ec2-34-211-42-228:https ESTABLISHED tcp 0 0 keddad:39198 185.5.160.50.rasco:http ESTABLISHED tcp 0 0 localhost:46831 localhost:57850 ESTABLISHED tcp 0 0 localhost:45415 localhost:47496 ESTABLISHED tcp 0 0 keddad:39802 lb-140-82-113-25-:https ESTABLISHED tcp 0 0 keddad:58948 149.154.167.51:https ESTABLISHED Что я делаю не так?
у тебя энтрипойнт какой?
George
python3 flask run получается? Не масло ли масляное?
Лицеисточка
python3 flask run получается? Не масло ли масляное?
Вообще хз, если честно, я по сути скопировал его с доков, только порт дописал, что бы он не стартовал на стандартном 5000
Danila
Т.е. есть общая weave сеть, к которой подключены все контейнеры. И мне нужно с помощью файрволла разграничить доступ по сети(есть сервисы, к которым могут иметь доступ только строго определённые контейнеры)
Лицеисточка
два раза случайно один и тот же порт не указали при запуске
Ну вроде нет, в докерфайле я указываю переменную окружения на которой запустится сам Flask, а в Docker-compose - диапазон портов, который будет проброшен, если я правильно все понимаю
central
это вопрос?
полу вопрос полу предложение
George
рабочая машина не мак-винда?
Danila
Ну, вариант с разными сетями очевиден
Danila
другое дело, что сетей тогда будет довольно много
Anonymous
нет, и не нужно так делать
А как лучше сделать?
George
headless chrome, phantomjs, хз, что за задача?
George
selenium?
George
🤷‍♂️
Danila
Желательно, чтобы этот файрвол работал внутри контейнера
PSYTRGLES
Ubuntu 19.04
сори, офтопну. И как система?
Лицеисточка
сори, офтопну. И как система?
Система прекрасная, а вот Gnome мне не понравился. С I3wm вполне себе
Danila
полиси нет
Ну, мне не совсем полиси нужно. Просто сетевая изоляция контейнеров
George
iptables ты можешь сам настроить )
George
но много ручной работы
George
в теории проще всего - вообще оторвать у докера управление айпишниками контейнеров и правилами файрволла
George
но это выглядит как переизобретение кубеня или номада
Danila
мне просто от кубера нужна только изоляция контейнеров
George
понимаешь, изоляция и контейнеры = уже звучит смешно
Danila
ну, или забить на iptables и просто городить сети weave
George
не боишься деградации скорости сети из-за оверлейной сети?
Danila
не боишься деградации скорости сети из-за оверлейной сети?
нет. мне в любом случае её использовать - с изоляцией или без
Владимир
контейнеры предполагают изоляцию
Владимир
а вот оверлейная сеть сразу проблем не создаст, но со временем побочек появится тьма, эт да
Danila
условно, будет у меня 100 оверлейных сетей
Danila
и кластер из 10 серверов
Danila
и, скорее всего, эти сети будут виснуть
su
сейчас уже скопипастил кусок докерфайла и нашел работающий бинарник. все более менее ок. вопрос можно считать закрытым. спасибо :)
Все так делают, я создал докерфайл для .net core, к примеру, выкинул его в gihub, там фишка в том, что если не подгрузить libffmpeg, шрифты и всякое барахло, нормально pdf не сгенерится
George
условно, будет у меня 100 оверлейных сетей
по-моему, ты все-таки хочешь куба
George
> контейнеры предполагают изоляцию только вот неполную. 🤦‍♂️
Danila
по-моему, ты все-таки хочешь куба
мне нужна отдельная часть от куба. storage provisioners/operators и прочие возможности кубера я не использую
George
не используй
George
ты можешь от куба взять ровно то, что тебе от него нужно
George
ну, манифесты у тебя будут посложнее - hostPath + лейблами прибить поды к определенным нодам
inqfen
Но оно уже готово, работает, обновляется
inqfen
Если в машине не нужен бардачок, не повод искать машину без него или делать свою, где его не будет
Лицеисточка
Ого, тут есть коммьюнити, круто Появился вопрос. Хочу упаковать в контейнеры связку из Python приложения и Mongo. Dockerfile приложения: FROM python:3.7-alpine WORKDIR /code ENV FLASK_APP app.py ENV FLASK_RUN_HOST 0.0.0.0 ENV FLASK_RUN_PORT 8080 RUN apk add --no-cache gcc musl-dev linux-headers COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . . CMD ["flask", "run"] docker-compose: version: '3' services: app: build: . ports: - "8080:8080" mongodb: image: "mongo:latest" Но при этом когда я делаю docker-compose -f /home/keddad/PycharmProjects/yad_rest/docker-compose.yml up -d mongodb app Mongo поднимается нормально, а app падает с ошибкой Creating yad_rest_app_1 ... error ERROR: for yad_rest_app_1 Cannot start service app: driver failed programming external connectivity on endpoint yad_rest_app_1 (14a9234df2e9112c91d75bf2e2a8146e717090df20d115cfb423d263c971f515): Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: address already in use При этом на хост-машине 8080 не занят: sudo netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:47496 localhost:45415 ESTABLISHED tcp 0 0 localhost:57850 localhost:46831 ESTABLISHED tcp 0 0 keddad:37824 ec2-34-211-42-228:https ESTABLISHED tcp 0 0 keddad:39198 185.5.160.50.rasco:http ESTABLISHED tcp 0 0 localhost:46831 localhost:57850 ESTABLISHED tcp 0 0 localhost:45415 localhost:47496 ESTABLISHED tcp 0 0 keddad:39802 lb-140-82-113-25-:https ESTABLISHED tcp 0 0 keddad:58948 149.154.167.51:https ESTABLISHED Что я делаю не так?
Окей, я просто поменял порты, заработало. Еще вопрос: оно же находится внутри одной сети? То есть если Flask делает запрос к mongo как localhost:27017, это будет работать?
inqfen
По имени контейнера обращайся
inqfen
У них разные локалхосты
Лицеисточка
О, спасибо А имя контейнера всегда будет yad_rest_mongodb_1 (сейчас он обозвал его так) или можно что то прописать, что бы оно всегда было статичным?
Лицеисточка
И мне разве не нужно прописать что то в духе links: - mongo ?
George
И мне разве не нужно прописать что то в духе links: - mongo ?
links забудь. Есть networks. Обращаться по имени контейнера. Его можно зафиксировать через container_name