Tadeusz
разрабы медленные, всегда.
Sebor▂▅▇█▓▒░
tfhx8
народ, кто на питоне пишет, вы скрипты в докер оборачиваете или хватает виртуаленва?
George
tfhx8
От задачи зависит
я просто не совсем понимаю, когда надо оборачивать, а когда достаточно виртуаленва. Просто мне кажется если под докер делать, то отлаживать скрипты не просто будет
Sebor▂▅▇█▓▒░
Если тебе не подходит - то делай по-старинке
tfhx8
просто если к примеру использовать селениум и там вебривер в скрипте если не закрывать, он будет скапливаться и сжирать память, если скрипит запускается десятки раз. Тут наверно виртуаленв не поможет. А с докером просто образ убить и все очистится
Sebor▂▅▇█▓▒░
George
Andrey
tfhx8
да
а когда сам скрипт пишите, тестируете его, вне докера?
A⃣lex
В докере можно как то указать чтобы каждая реплика смотрела на свой маунт ?
George
George
Но ты можешь создать разные контейнеры с разными маунтами
A⃣lex
😢
A⃣lex
Тогда второй вопрос
Sebor▂▅▇█▓▒░
Тоже нет
A⃣lex
Жаль , ну ладно (
A⃣lex
Так и быть задам . Сейчас в докере возможно , что при запуске образа создается маунт с определенным именем ?
A⃣lex
С чистого образа , без конфигов и т.д
George
George
Ещё раз вопрос
George
A⃣lex
запускаешь чистый образ, создается маунт с определенным (человеческим) именем, посмотрел diff образа , там строк 200 похоже на какоето динамическое создание образа
George
@
Парни, подскажите за такой вопрос, есть rhel72 и при запуске контейнера с nginx и прилой в нутри я ловлю ерор с недостатком прав
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] done.
[services.d] starting services
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise nginx: warning: unable to spawn ./run - waiting 10 seconds
s6-supervise (child): fatal: unable to exec run: Permission denied
s6-supervise manager: warning: unable to spawn ./run - waiting 10 seconds
аналогичный контейнер на centos7 заводится без проблем, setenforce указан в 0, selinux отключен
George
@
вот не могу понять куда копать
George
George
или что-то еще форсит какую-то безопасность, может ядро виновато (оно же разное наверняка)
Tadeusz
Tadeusz
я так понял он везде у вас отключен)
@
Tadeusz
зря вы так)
@
зря вы так)
я его отключил что бы выявить траблу, но трабла явно не в нем
Andrey
Andrey
Dimitri
Привет всем есть вопрос по Докеру :
Как можно передать аргументы в докер имидж чтоб потом можно было им в момент построении воспользоваться .при попытке сделать вот так : docker build -t kuku —build-arg NAME=VASYA —build-arg FNAMe=PETYA
А в самом Докер файле :
ARG NAME
ARG FNAME
RUN echo ${NAME} $FNAME
В output получаю echo ${NAME} $FNAME а не их value
Может я чето не догоняю или не вижу но мне в RUN echo нужно чтоб передалось то что я задаю при build
George
George
ARG NAME
ARG FNAME
ENV NAME=$NAME
ENV FNAME=$FNAME
RUN echo ${NAME} $FNAME
George
как-то так
Dimitri
Отлично спасибо
Евгений
Может тут кто знает...
Запускаю одинаковый docker-compose.yml у себя на ПК и на VPS.
У меня на ПК всё работает отлично. На VPS получаю эту ошибку.
Если на VPS запускаю чисто контейнер rabbitmq, а своё приложение из venv'а, то всё работает нормально. Изначально думал, что проблема в версиях rabbitmq/dramatiq, потом, что в количестве потоков/железе на VPS - настраивал -p 1 -t 1, потом пришёл к выводу, что, возможно, это какое-то ограничение Docker'а на железе на VPS (хотя тоже звучит странно), раз без контейнера работает исправно. Есть ли предположения, что это может быть?
Варианты, которые точно отметены:
- неверные реквизиты
- нехватка памяти
- не успевает стартануть rabbitmq (запуск скрипта, который его использует не падает при отсутствии коннекта, а пытается подключиться снова)
George
Может тут кто знает...
Запускаю одинаковый docker-compose.yml у себя на ПК и на VPS.
У меня на ПК всё работает отлично. На VPS получаю эту ошибку.
Если на VPS запускаю чисто контейнер rabbitmq, а своё приложение из venv'а, то всё работает нормально. Изначально думал, что проблема в версиях rabbitmq/dramatiq, потом, что в количестве потоков/железе на VPS - настраивал -p 1 -t 1, потом пришёл к выводу, что, возможно, это какое-то ограничение Docker'а на железе на VPS (хотя тоже звучит странно), раз без контейнера работает исправно. Есть ли предположения, что это может быть?
Варианты, которые точно отметены:
- неверные реквизиты
- нехватка памяти
- не успевает стартануть rabbitmq (запуск скрипта, который его использует не падает при отсутствии коннекта, а пытается подключиться снова)
из доп соображений
George
ты же образ билдишь прямо на впс? не пробовал гарантированно рабочий образ с локальной машины перенести ?
Евгений
George
George
Евгений
Евгений
окей, сейчас протестирую, спасибо
Евгений
George
значит, дело не в образах, а в окружении
Евгений
мдэмс
Евгений
очень странное дело
Sebor▂▅▇█▓▒░
а вообще другие контейнеры запускаются на впс?
базовый рэббит, например
Dimitri
@gecube не работает ;-(
Странно но вот какой output я получаю
RUN gulp build -m client --wlk ${IP_WHITELIST_CAPTCHA_KEY} --lk $LOGIN_CAPTCHA_KEY
При вот такой команде билда
docker build -t stil_image --build-arg VERSION=1.1.7-SNAPSHOT --build-arg IP_WHITELIST_CAPTCHA_KEY=foo --build-arg LOGIN_CAPTCHA_KEY=kuku .
и вот таком. Докерфайле:
ARG LOGIN_CAPTCHA_KEY
ARG IP_WHITELIST_CAPTCHA_KEY
ENV LOGIN_CAPTCHA_KEY=$LOGIN_CAPTCHA_KEY
ENV IP_WHITELIST_CAPTCHA_KEY=${IP_WHITELIST_CAPTCHA_KEY}
RUN npm install -g gulp@^4.0.0 bower verdaccio
RUN rm -f package-lock.json && \
RUN gulp build -m client --wlk ${IP_WHITELIST_CAPTCHA_KEY} --lk $LOGIN_CAPTCHA_KEY
Николай
Всем привет. Никто не сталкивался с докером в режиме swarm с такой проблемой?
Проблема: при развертывании кластера elasticsearch если в yml файле у сервисов указаны healthcheck то кластер не собирается т.к. таски (контейнеры) не могут резолвить друг-друга по имени сервиса.
Пробовал заходить в контейнеры и делать пинги. Даже сам себя пинговать не может. Не резолвит имя.
Как только выкосил healthchecks все сразу собралось.
Причем не обязательно выкашивать все. Достаточно на нескольких сервисах.
Я не понял как это работает (
Версия докера: Server Version: 19.03.8
Хостовая система: CentOS 8.1.1911
Firewall: off
Selinux: disabled
Max xbim 🌴
В health check есть старт тайм пробовал повышать?
Николай
да. было 45
увеличивал до 245
Николай
проблема в том что умирает именно dns резолвинг
Николай
а пока он не оживет хэлфчек не пройдет
в итоге сервисы в бесконечном рестарте
Николай
в параллельном чатике мне один намекнул что это многолетняя бага докера
George
Max xbim 🌴
Николай
днс по service name
Николай
master1:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.0
environment:
- node.name=master1
- node.master=true
- node.data=false
- ES_JAVA_OPTS=-Xms4g -Xmx4g
- cluster.name=t-cluster
- network.host=0.0.0.0
- discovery.seed_hosts=master1,master2,master3
- cluster.initial_master_nodes=master1,master2,master3
networks:
- esnet
volumes:
- esmaster1:/usr/share/elasticsearch/data
deploy:
placement:
constraints: [ node.name == node-1 ]
endpoint_mode: dnsrr
mode: "replicated"
replicas: 1
resources:
limits:
memory: 5G
master2:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.0
environment:
- node.name=master2
- node.master=true
- node.data=false
- ES_JAVA_OPTS=-Xms4g -Xmx4g
- cluster.name=t-cluster
- network.host=0.0.0.0
- discovery.seed_hosts=master1,master2,master3
- cluster.initial_master_nodes=master1,master2,master3
networks:
- esnet
volumes:
- esmaster2:/usr/share/elasticsearch/data
deploy:
placement:
constraints: [ node.name == node-2 ]
endpoint_mode: dnsrr
mode: "replicated"
replicas: 1
resources:
limits:
memory: 5G
master3:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.0
environment:
- node.name=master3
- node.master=true
- node.data=false
- ES_JAVA_OPTS=-Xms4g -Xmx4g
- cluster.name=t-cluster
- network.host=0.0.0.0
- discovery.seed_hosts=master1,master2,master3
- cluster.initial_master_nodes=master1,master2,master3
networks:
- esnet
volumes:
- esmaster3:/usr/share/elasticsearch/data
deploy:
placement:
constraints: [ node.name == node-3 ]
endpoint_mode: dnsrr
mode: "replicated"
replicas: 1
resources:
limits:
memory: 5G
Николай
вот так оно собирается
Николай
healthcheck:
test: curl -fs http://localhost:9200/_cat/health || exit 1
interval: 30s
timeout: 5s
retries: 3
start_period: 45s
стоит добавить вот такое в каждый сервис и dns отпадает
Николай
таймауты можно увеличивать хоть до бесконечности, dns от этого не оживает
Николай
но почему то все оживает, если я уберу healthchecks хотя бы из одного сервиса
Levan (Leo)
apt-get update -y / что означает -y ?
Dan
yes
Dan
Levan (Leo)
Я хочу с помощью RUN &&\ впихнуть несколько команд. Это нормально или не стоит так делать ?