Yaroslav
через apt-get snap - не знаю что это
snap list там нет докера?
Евгений
snap list там нет докера?
установка докера через snap или apt-get может как-то повлиять на его работу?
George
да
George
через снап не надо ставить
George
надо ставить из официального репозитория по официальной же инструкции
Yaroslav
надо ставить из официального репозитория по официальной же инструкции
я на днях обнаружил, что при инсталяции убунту сервера, если на этапе установки системы поставить галочку docker (типа среди прочих сервисов которые будут сразу установлены), устанавливается snap версия
Igor
Всем привет, подскажите если нужно клонировать репу git,как это сделать внутри контейнера, проблема в том, что думаю надо копать в сторону передачи своих хостовых uid guid , потому что ключ ssh от хоста записан в git для клонирования репы, но как это сделать (передать) контейнеру? Опять же при условии что у хоста есть ssh-ключ для клонирования из гита
George
uid и guid не надо
George
Передать можно через файл или через переменную окружения
Igor
Есть какой-то пример, кроме как варианта с uid , чтобы подцепить ключ идей нет..
Evgeniy
Всем привет, подскажите если нужно клонировать репу git,как это сделать внутри контейнера, проблема в том, что думаю надо копать в сторону передачи своих хостовых uid guid , потому что ключ ssh от хоста записан в git для клонирования репы, но как это сделать (передать) контейнеру? Опять же при условии что у хоста есть ssh-ключ для клонирования из гита
а точно надо клонировать ? может клонировать можно владельцу машины а уже дальше или монтировать или копировать файлы с хостовой машины в крайнем случае можно сокет прокинуть от ssh agent - но почти всегда в этом нет необходимости выглядит так что вы что то хотите сделать не так
Igor
а точно надо клонировать ? может клонировать можно владельцу машины а уже дальше или монтировать или копировать файлы с хостовой машины в крайнем случае можно сокет прокинуть от ssh agent - но почти всегда в этом нет необходимости выглядит так что вы что то хотите сделать не так
Я думаю проблема в регулярном обновлении данных в репозитории,и если сделать сначала у себя на хосте-то слишком много манипуляций,а так при запуске билда он внутри бы себя сам все копировал(последнюю версию на момент запуска) и запускал
077
поднял проект на aws cloud, если ли польза поднять с докером и есть ли возможность сделать это в aws cloud?
George
Есть
George
Польза есть
George
Возможность есть
Kila
Привет всем. Из-за чего может отсутствовать соединие между контейнерами? Находятся в одной сети, через docker ping обмен есть, но http запрос не принимает Post "http://authentication-service:8082/auth": dial tcp 192.168.80.4:8082: connect: connection refused
Kila
docker-compose так поднимает
Kila
сервис похоже не слушает на 8082
Слушает, в docker-compose конфиге поставил порт ports: - "8082:8080" docker inspect выдает так: "Ports": { "8080/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "8082" }, { "HostIp": "::", "HostPort": "8082" } ] },
George
ты балбес
George
http://authentication-service:8080/auth
George
вот так надо ходить
George
8082 - это порт на хосте 🤷
Kila
ааа, теперь понятно + заработало. Спасибо большое за помощь. То есть когда делаем запрос на auth-serv:8080 он находит этот контейнер, а 8082 это внутренний порт контейнера?
Igor
если у тебя контейнер занимается билдом это не его задача получать исходники он билдит то что ему дали, а как передать это уже отдельынй разговор
Спасибо,он билдит по инструкции из dockerfile ,но вопрос то именно как передать ему кредентиалс,потому что сейчас контейнер выдает ошибку о невозможности подключения к удаленному реп гит,что впринципк и логично
Igor
Спасибо,так проект на php работает через веб сервер apache. если я делаю полноценный dockerfile на git-clone с useradd groupadd ,а в докер компос уже прописываю команду git clone,затем дальше идет образ самого проекта php с apache ,вообщем в такой связке как 2 разных образа это работает,то есть сначала все это дело клонируется, а потом в образе с пхп и апаче переносится в нужную директорию, за базовый слой используем что в одном что в другом образе ubuntu,вообщем так все деплоится,но я хочу шаг с клонированием объединить с шагом php+apache
George
Зачем эти приседания с гит клоун в докерфайле ?
𝔸ртемий
ребят, кто обновлял докер, вы сколько ждали?
𝔸ртемий
я жду уже минут 40 или оно залагало ?
George
Удали и поставь заново
George
Бывает
𝔸ртемий
Бывает
что-то начало происходить, но сейчас снова будто бы зависло
PBAX
Всем хай, кто сталкивался. Использую в докерфайле selenium/standalone-firefox Всё скачалось, установилось. Проверил файлфокс версию (последняя), проверил geckodriver (тоже последняя), запускаю тест на nodejs и получаю: Process unexpectedly closed with status 1 Как такое решить? Или подскажите чат по селениуму, попробую туда постучать, мб помогут.
Евгений
Здравствуйте, помогите пожалуйста. Образ VSCode (code-server), монтируется папка /config: config через Volumes: в docker-compose.yml. В Dockerfile есть пара COPY /local /config/.. - копирую несколько файлов конфигурации, которые любовно собраны в отдельную папочку, чтобы не теряться в громоздкой папке config. В итоге результатов работы COPY ни в контейнере ни на хосте не появляется. Файлы копируются, ошибок не возникает, но файлов нет, они по все видимости затираются через VOLUME, потому что изначально там этих файлов нет. Как сделать, чтобы такая задумка работала?
Igor
Всем привет,наведите на истинный путь пожалуйста)) Как правильно в Dockerfile работать с USER,т.е. по умолчанию он по факту выполняет после FROM и до указания USER ${USER} команды как бы от root ,в docker-compose указываю user: ${USER}:${USER} ,делаю useradd и тп,чтобы стать аля юзерхостом,и вроде все отлично - билдится образ потом выполняется command в docker-compose,но проблема в том,что в конце command есть команда которая требует root прав,а я напоминаю использую uid guid хост-юзера,как мне быть? И вопрос туда же, если я запишу команду как sh скрипт,а потом выполню RUN example.sh ,то опять же как избежать при выполнении скрипта ошибки permission denied,логично что если я выполню этот скрипт через CMD / ENTRYPOINT - все сработает,опять же проблема с правами..((( P.s. Если я выполню docker exec -it -u root <container> sh , и в интерактивном теоминале от root выполню те самые команды-все сработает,но сами понимаете это дико неудобно
Ruslan
Всем привет, подскажите пожалуйста я сделал тестовый микросервис залил на гитлаб, создал gitlab yml прописал шаги билд, тест, run in local докер, пайплайн проходит, и в докере само приложение работает и внутри докера я могу получать гет запросы, от приложения, также я пробросил порт 8081:8080 и ожидал что могу достучаться по localhost, но по нему ничего нет, подскажите пожалуйста в чем может быть причина, может как то по хитрому нужно пробрасывать на внешку порты? прошу прощения за сумбурность, если можете задать наводящие вопросы пожалуйста задайте.
Andrey
Всем привет,наведите на истинный путь пожалуйста)) Как правильно в Dockerfile работать с USER,т.е. по умолчанию он по факту выполняет после FROM и до указания USER ${USER} команды как бы от root ,в docker-compose указываю user: ${USER}:${USER} ,делаю useradd и тп,чтобы стать аля юзерхостом,и вроде все отлично - билдится образ потом выполняется command в docker-compose,но проблема в том,что в конце command есть команда которая требует root прав,а я напоминаю использую uid guid хост-юзера,как мне быть? И вопрос туда же, если я запишу команду как sh скрипт,а потом выполню RUN example.sh ,то опять же как избежать при выполнении скрипта ошибки permission denied,логично что если я выполню этот скрипт через CMD / ENTRYPOINT - все сработает,опять же проблема с правами..((( P.s. Если я выполню docker exec -it -u root <container> sh , и в интерактивном теоминале от root выполню те самые команды-все сработает,но сами понимаете это дико неудобно
a) не от root, а от пользователя образа from б) не надо завязываться на пользователя хоста в) run инструкции выполняются на этапе сборки
Igor
a) не от root, а от пользователя образа from б) не надо завязываться на пользователя хоста в) run инструкции выполняются на этапе сборки
Сори за терминологию,тут есть проблема у меня задача внутрь контейнера склонировать гитовский репозиторий,благодаря юзерхосту я монтирую папку .ssh и все идет,да исполнение RUN я и имел ввиду в билде
Ruslan
Вопрос куда деплоили? Причина может быть в том что внутри контейнера приложение слушает localhost а должно 0.0.0.0
Приложение запускается в докере и успешно крутится там, я пытаюсь эмудировать работу приложения на тестовом окружении чтобы там его затестить перед деплоем, где я могу посмотреть что внутри контейнера приложение слушает localhost а должно 0.0.0.0 пожалуйста подскажи
Solyar
По куберу
Solyar
ну, оно в dind'е, снаружи ты к нему не обратишься
Igor
нет
Ясно,спасибо
Ivan
Привет, встречал вот такую запись объявления вольюмов в компоузе volumes: foo: driver: local driver_opts: o: XXX type: YYY device: ZZZ а где можно посмотреть что это за options. что такое type device и o и какие значения они могу принимать?
Andrey
https://docs.docker.com/compose/compose-file/
Ivan
там написано что driver dependant. я так понимаю речь о storage driver. пытался гуглить overlay2 driver options но ничего адекватного не нашел
Ivan
Ладно, может кто-то подскажет если задам вопрос по другому. В общем делаю дев контейнер, внутри приложения будет папка node_modules. Под нее решил сделать named volume, который маунтиться в /app/node_modules, где /app это прокинутая папка с хоста с сорсами. Все вроде работает нормально, но вот на хосте в папке с проектом появляется папка node_modules которая принадлежит руту. Как можно это исправить? Видел что в driver_opts иногда указывают uid, но то ли я что-то не так делаю, то ли это не работает
Igor
сделай токен и передай его в аргументах. не надо заниматься извращениями
Повникал немного, извращениями приходится заниматься потому что через токен у гита не отлажено взаимодействие с подмодулями, а так да удобно, но не совсем подходит
Евгений
Господа, restart_policy.window - в документации сказано, что это время, как долго ждать прежде, чем определить, что рестарт удался В каком плане как долго ждать? Через это время пойдут healthcheck'и на этот контейнер? Это как-то работает в связке с задержкой для хелзчеков healthcheck.start_period?
CI/CD
Почему мой основной ак отлетел на год в бан как только я зашёл в группу?
Null
Почему мой основной ак отлетел на год в бан как только я зашёл в группу?
какой аккаунт? возможно по ошибке бот рестрикт поставил, а может он успел наспамить где-то :)
Рашид
Добрый день! Подскажите пожалуйста, можно ли как то получить порядковый номер скейла внутри контейнера?
Ruslan
Добрый день! Подскажите пожалуйста, можно ли как то получить порядковый номер скейла внутри контейнера?
а зачем? порядковый номер скейла не является уникальным идентификатором скейла, а является лишь индексом среди всех скейлов, которые были выполнены
Рашид
а зачем? порядковый номер скейла не является уникальным идентификатором скейла, а является лишь индексом среди всех скейлов, которые были выполнены
задача такая: 1. Есть 10 задач(хранятся в базе и имеют свой ид) 2. Есть 5 скейлов контейнеров Нужно знать какая задача в каком контейнере крутится и жива ли она вообще
Ruslan
можно сделать конечно heartbeat в задачах но хотелось бы еще проще
так а Kubernetes Autoscaling с HorizontalPodAutoscaler тебе не подойдет?
Рашид
так а Kubernetes Autoscaling с HorizontalPodAutoscaler тебе не подойдет?
суть в том чтобы понимать жив ли процесс, когда запускается задача она помечается в базе соответствующим флагом к примеру in_process, предположим она упала(сервер ушел в ребут или еще что то, не суть) и задачка в базе так и осталась in_process=1, хотя по сути она не запущена
Ruslan
суть в том чтобы понимать жив ли процесс, когда запускается задача она помечается в базе соответствующим флагом к примеру in_process, предположим она упала(сервер ушел в ребут или еще что то, не суть) и задачка в базе так и осталась in_process=1, хотя по сути она не запущена
Попробуй так: 1) создай label для каждой задачи с указанием ее идентификатора. Можешь добавить ее в манифест контейнера в качестве параметра labels 2) Создай описание репликасета для каждого контейнера указав лейбл задачи в качестве селектора. Это будет указывать какие контейнеры должны быть созданы при развертывании репликасета 3) Создай описание деплоя для каждого репликасета. Деплой уже будет управлять созданием и управлением репликасета. Потом после создания деплоя можно юзать команду kubectl get pods -l task-id=тут айди которую ты укажешь. В выводе соответственно будут указаны имена подов и статусы которые помогут узнать какие задачи в каких контейнерах крутятся. Также можешь юзать kubectl describe pod <имя пода> - тут надо будет вставить имя пода в котором запущена задача, и там смотреть жив или закончил работу.
Рашид
Попробуй так: 1) создай label для каждой задачи с указанием ее идентификатора. Можешь добавить ее в манифест контейнера в качестве параметра labels 2) Создай описание репликасета для каждого контейнера указав лейбл задачи в качестве селектора. Это будет указывать какие контейнеры должны быть созданы при развертывании репликасета 3) Создай описание деплоя для каждого репликасета. Деплой уже будет управлять созданием и управлением репликасета. Потом после создания деплоя можно юзать команду kubectl get pods -l task-id=тут айди которую ты укажешь. В выводе соответственно будут указаны имена подов и статусы которые помогут узнать какие задачи в каких контейнерах крутятся. Также можешь юзать kubectl describe pod <имя пода> - тут надо будет вставить имя пода в котором запущена задача, и там смотреть жив или закончил работу.
создай label для каждой задачи вот тут к сожалению проблемка, задач уже свыше 150 )