Lamobot
Lamobot
user id
0xDEFACE
1000 985 мне нужно чтобы у вольюм был владелец солр
0xDEFACE
у него ид 8983
George
это так не работает
George
не используй volume
Lamobot
я думал volume владелец будет
Нет, вольюм с хост машины будет с хост правами. Надо или ручками их исправлять, или контейнер запускать под нужным юзером
George
используй расширенный синтаксис https://docs.docker.com/storage/bind-mounts/
George
и создавай каталог заранее с нужными правами
George
George
короче, вопрос с правами в докере не решен от слова никак
0xDEFACE
George
0xDEFACE
да
так я могу,но до последнего думал что без этого можно обойтись
George
это докир!
George
тут все через одно место
George
вообще кажется, что тебе байнд маунт (это именно так, а не вольюм) тебе не нужен
George
он вызывает больше проблем, чем толку от него
George
но даже с обычным вольюмом - файлы можно вытащить или записать в него. Либо через временный контейнер, либо напрямую через /var/lib/docker/volumes, либо через docker cp или пайп (docker exec cat ololo | cat > ololo)
0xDEFACE
Valery
George
George
ты понимаешь, что это не работает чуть более, чем полностью?
George
т.е. ограничить доступ к докер-демону - да, можно, но это бинарная опция (либо есть доступ, либо нет). И RBAC нет. И это проблема
George
ибо пользователь в группе докер может сделать https://t.me/docker_ru/140360
George
George
ты где его видел?
George
я тебе более того скажу - я развлекался тем, что запускал несколько выделенных докер демонов на одном хосте ) для каждого юзера свой. Но это выглядит.... ужасно
George
и фактически не решает проблему, которую выше я по ссылке скинул.
За доклад - спасибо, посмотрим
su
George
кстати, у меня на рабочую машинку тоже докатился. До этого был 18.06, вроде
su
мне вообще пришлось чистый новый раздел освободить, и да, там в Ubuntu 19 канешно мы как подопытные кролики, но зато мейби баги пофиксят, я включил отправку в canonical всего-всего, пусть разбираются)
George
su
Anonymous
Всем привет! Сразу нучну с вопроса. В общем, есть 4 контейнера: redis, postgres, mongo и node.js, вот последний должен уметь ко всем коннектиться. Есть docker-compose файлик, где описаны они и заведены под depends_on к node.js (вроде бы так они становятся доступны). В node.js localhost изменен на postgres, redis, mongo соответственно, чтобы стучаться в разные контейнеры, но почему то мне как всегда разворачивает с ошибкой:
failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
или
[ioredis] Unhandled error event: Error: connect ECONNREFUSED 127.0.0.1:6379
при этом если стучаться через docker exec в любой контейнер, они отвечают что все ок у них. Соответственно делаю вывод, что это node.js не видит их, но как помочь ему - не понимаю.
Anonymous
version: "3.5"
services:
redis:
image: redis:alpine
restart: always
volumes:
- ./redis:/data
ports:
- "6379:6379"
healthcheck:
test: ["CMD-SHELL", "redis-cli", "ping"]
interval: 30s
timeout: 10s
retries: 5
postgres:
image: postgres:9.6
restart: always
env_file:
- .env
volumes:
- ./postgres:/var/lib/postgresql/data
ports:
- "5432:5432"
- "4040:4040"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 30s
timeout: 10s
retries: 5
start_period: 15s
mongo:
image: mongo:latest
restart: always
env_file:
- .env
volumes:
- ./mongo:/data/db
ports:
- "27017:27017"
api:
build: .
restart: always
volumes:
- .:/usr/src/app
ports:
- "3030:3030"
depends_on:
- mongo
- postgres
- redis
George
Всем привет! Сразу нучну с вопроса. В общем, есть 4 контейнера: redis, postgres, mongo и node.js, вот последний должен уметь ко всем коннектиться. Есть docker-compose файлик, где описаны они и заведены под depends_on к node.js (вроде бы так они становятся доступны). В node.js localhost изменен на postgres, redis, mongo соответственно, чтобы стучаться в разные контейнеры, но почему то мне как всегда разворачивает с ошибкой:
failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
или
[ioredis] Unhandled error event: Error: connect ECONNREFUSED 127.0.0.1:6379
при этом если стучаться через docker exec в любой контейнер, они отвечают что все ок у них. Соответственно делаю вывод, что это node.js не видит их, но как помочь ему - не понимаю.
у тебя настройки приложения ноды кривые. 100%
George
ты прав, что надо ходить по именам контейнеров, но, видимо, у тебя почему-то эта настройка не подсосалась
Jąńek
Anonymous
Jąńek
и по кускам раздели, типа ноду и редис сначала запустить, а потом всё остальное
Jąńek
иначе непонятно где падает
Anonymous
George
Anonymous
George
ну, а откуда оно 127.0.0.1 или локалхост всасывает?
Anonymous
Anonymous
нигде нет localhost
George
образ ТОЧНО пересобрал?
Anonymous
я вообще все image ремувнул
Anonymous
и сделал docker-compose up --build
George
🤷♂️сделай больше отладочных принтов, но похоже на то, что я сказал - не подцепляет конфиг. Думаю, тебе как прогеру, будет не сложно отладить переменные для подключения к БД
Hикoлaй
Комрады, это наверно 100 раз уже обсуждалось, но что то не пойму.
Как из контейнера в swarm mode, где крутится nginx спроксировать на host.
То-есть если в просто звпустить контейнер без swarm, то можно установить ему network=host и в nginx в proxy_pass написать 127.0.0.1 и все работает. А как подобное реализовать для swarm?
Anonymous
Anonymous
всем спасибо!
0xDEFACE
George
George
это когда у тебя есть исполняемый файл, который наследует права не от юзера, а от своих прав, которые в ФС
George
таким макаром можно программу с правами рута от непривилегированного юзера запустить
George
но вообще аппармор и селинукс против этого защищают
0xDEFACE
George
George
если очень хочется - делай volume и монтируй его в оба контейнера
0xDEFACE
George
0xDEFACE
нет. Юзер в контейнере, либо как задашь
если не менять контейнер, а взять из хаба, вот у меня допустим злополучный solr - я не могу примонтировать туда директорию чтобы владельцем был солр
George
ну, особенность образа. Чего ты хочешь
George
можешь вообще под рутом всегда внутри контейнера запускать (не бест пректис) - и тогда очевидно прав с пермишенами не будет
0xDEFACE
менять владельца при запуске?
George
не надо добавлять юзера на хосте