George
Строчку с вольюм - раскоммеетировать
Макс
version: "3" services: db: image: "postgres:11.2-alpine" container_name: "my_postgres" ports: - "54320:5432" volumes: - database_data:/var/lib/postgresql/data volumes: database_data: "~/psql_db_file"
Макс
я правелбно понимаю что по пути database_data: "~/psql_db_file" будут храниться файлы бд
Anatolii
Кто то запускал монго в docker-compose, можете мне помочь? db: image: mongo restart: always ports: - 27017:27017 environment: MONGO_INITDB_ROOT_USERNAME: mongoadmin MONGO_INITDB_ROOT_PASSWORD: secret Мне выдает MongoSecurityException
Andor
что именно пишет-то хоть?
Anatolii
com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=PLAIN, userName='mongoadmin', source='admin', password=<hidden>, mechanismProperties={}}
George
Читайте доку. Отличие volume от bind mount
Artur
хай всем. словил странную ситуацию. запускаешь контейнер, работает. чеез n времени он ( контейнер) зависает и всё. ни убить его, ни рестарнуть. даже inspect не выводит ничего. в чём прикол ? в логах демона докера level=error msg="Handler for GET /v1.39/nodes returned error: This node is not a swarm manager. Use \"docker swarm init\" or \"docker swarm join\" to conne из последнего. но никакого роя у меня нет
Никита
докер какая версия?
Anonymous
Нужно доступ к файлам контейнера с хоста
Anonymous
Был же способ. Делал я это еще.
Anonymous
Но не могу теперь найти в нэте. Помогити.
Roman
Привет всем, подскажите: нормальная ли практика выставлять Linux capabilities внутри image? Вот так, например: RUN setcap 'cap_net_bind_service=+ep' $(which traefik)
Andor
в докер-композе кроме .env нет другого способа положить дефолтные параметры для переменных?
Anonymous
Вот другая проблема встала, почему нету ни bash ни sh ? docker exec -it container /bin/bash docker exec -it container /bin/sh
Roman
Имхо, лучше снаружи - в рантайме
Дело в том, что я же снаружи не вижу бинарник файла, которому хочу выставить capabilities. Проблема с этим должна решаться вот таким в docker-compose.yml cap_drop: - all cap_add: - NET_BIND_SERVICE Но я еще мапаю юзера хоста в докер через тот же docker-compose ... `user: ${CURRENT_UID}` ... CURRENT_UID=$(id -u):$(id -g) docker-compose up И получается, что если во время билда image не выставлять RUN setcap 'cap_net_bind_service=+ep' $(which traefik), то у этого non-root юзера замапанного в контейнер не будет нужных привилегий Короче, не совсем понимаю как красиво это оформить
Andor
можно файлик примонтировать
какой файлик? мне надо переменные пропихнуть в docker-compose чтобы имена образов и версии брались из них
Andor
ERROR: Cannot extend service 'phpunit' in docker-compose.yaml: services with 'depends_on' cannot be extendedа вы знали?
r9
какой файлик? мне надо переменные пропихнуть в docker-compose чтобы имена образов и версии брались из них
.env 😂 я думал дефолты для приложения, извини. можно попробовать шаблонизировать docker-compose, например
George
jinja2!!!
George
А ещё лучше не пользоваться компоузом
Andor
сам такой
Andor
ну блин для дев-окружения это лучший вариант нынче
George
Мне кажется, что мапать юзера в контейнер - не лучшая идея
George
И ещё зачем тебе этот cap?
Igor
о/
George
Ты на 80 порт садишься ? Может это можно через проброс портов сделать ?
Andor
Yaml anchors в помощь
да я так и делаю, конечно же
Andor
но есть нюанс
Roman
Мне кажется, что мапать юзера в контейнер - не лучшая идея
Так это же для безопасности советуют, нет? Иначе внутри контейнера будет работать "почти root". А cap нужен, чтобы рарешить порты меньше 1024 открыть, например
Roman
Хинт: тебе не нужны порты в контейнере меньше 1024!
Если оставлят рут внутри контейнера, то он открывает порты, если нет, то нет
George
Если оставлят рут внутри контейнера, то он открывает порты, если нет, то нет
В смысле ты без рута вообще порты открыть не можешь ? Это что-то новенькое
George
Ибо все прекрасно работает
Andor
ну и пусть открывает на интерфейсе контейнера
Andor
тебе-то чо
George
меньше 1024
Оно тебе не нужно
George
Или host mode ? Я не пойму )
Igor
а есть какие best practices для того как правильно тэгать контейнеры, чтобы в регистре не было помойки?
Igor
как разделять билды для QA и тестов и релизы?
Roman
Оно тебе не нужно
У меня есть просто edge-proxy в контейнере, который должен принмать запросы на 80 и 443. И в контейнере он должен быть запущен не от рута
Radzhab
Best не знаю но я делаю так. ЛогинНаДокерхаб/имяОбраза
Anonymous
В чем?
Не могу залезть в контейнер через bash и sh
Igor
Best не знаю но я делаю так. ЛогинНаДокерхаб/имяОбраза
ну вот как бы да, но как бы нет. у нас приватный регистри, чтобы случайно не выложить код
Igor
ну и проект состоит из 5 микросервисов, каждый микросервис имеет свои бранчи каждый спринт, которые надо тестить руками, автоматом, показывать клиенту, мерджить в дев и потом в какой-то момент делать тэг в репе кода и в реджистри
Igor
Не заморачивайся
косяк в том, что я Опс и мне как раз надо этим заморочится чтобы не было хуёвин типа New folder (34)
Igor
и чтобы народ руками не срал в репу, а все красиво билдил через Женкинса
Igor
я немного разочаровался, что нельзя папочками делать. ну типа Project: |-releases: | |:1.1.0 | \:1.2.0 \-snapshots: |branchname \anotherbranchname
George
Не могу залезть в контейнер через bash и sh
образ какой? если это дистролесс, то там и не должно быть баш-сш
Igor
докерхаб говно
это прелестно, конечно же, но причем тут докерхаб?
George
У меня есть просто edge-proxy в контейнере, который должен принмать запросы на 80 и 443. И в контейнере он должен быть запущен не от рута
не понял - кому нужно на 80 и 443? куб или стендэлоун докер? Я не устану повторять, что ерез директиву -p (ports) ты можешь снаружи замаппить любой порт на любой порт нвутри контейнера
George
как-то так в общем получается
George
блин. телега съела сообщение
George
у тебя два типа образов получается 1. обычные - при сборке метишь тегом = коммит sha 2. релизные - потом перемечиваешь тегом релиза, то что по названиям фиче-веток и latest - перемечиваешь по мере необходимости. Итог - у тебя два набора тегов - релизные (иммутабельные) и роллинг (latest-master-dev-feature ветки)
George
касательно папочек - тоже можно, т.е. условно у тебя имя образа - это ключ. Сколько уровней вложенности ты там сделаешь непринципально
George
нормальный регистри с такой "вложенной структурой" норм работает
George
но это неудобно для целей тестирования (((((
Roman
не понял - кому нужно на 80 и 443? куб или стендэлоун докер? Я не устану повторять, что ерез директиву -p (ports) ты можешь снаружи замаппить любой порт на любой порт нвутри контейнера
Да, еще раз подумал и понял, что, наверно, самый простой выход просто переставить порты у аппликейшена в докере и замапить их. Спасибо.
Igor
Почему нельзя?
хз. не дает и всё
Ильдар