
Anatoly
17.11.2016
18:34:43
Типа такого

Stepan
17.11.2016
18:35:03
О, сейчас попробую

Anatoly
17.11.2016
18:35:53
Посмотри синтаксис композа
Как там точно

Google

Stepan
17.11.2016
19:05:40
Как я понял, такой синтаксис используется для примонтирования хостового файла в контейнер, у меня-же обратная ситуация, мне нужно чтобы сокет из контейнера был доступен в хостовой машине

ptchol
17.11.2016
19:07:26

Stepan
17.11.2016
19:08:44
Отличие в том, что с таким синтасисом создается _директория_ /tmp/file.sock на хосте, а не копируется файл из контейнера

ptchol
17.11.2016
19:09:26
промаунти диру в которой будет сокет и всё

Stepan
17.11.2016
19:09:58
не работает

ptchol
17.11.2016
19:10:22
что не работает то

Stepan
17.11.2016
19:12:03
Когда я делаю на хосте "curl --unix-socket /tmp/app.socket "http:/..." у меня curl: (7) Couldn't connect to server
Если я то же самое делаю в контейнере, то всё окей
т.е. если сокет внутри volume, то я не могу с хоста через него общаться

ptchol
17.11.2016
19:13:16
хм
а это наверно логично.
ща.

Stepan
17.11.2016
19:13:38
Логично, согласен :)

ptchol
17.11.2016
19:16:56
ну да

Google

ptchol
17.11.2016
19:16:58
это ж ipc
они типа в разных неймспейсах наверно

Stepan
17.11.2016
19:17:24
похоже
и что лучше сделать?
контейнеры ведь могут друг с другом через сокеты общаться?

ptchol
17.11.2016
19:18:22
для теста в докер ране сказать ipc="host"
--ipc

Stepan
17.11.2016
19:24:23
Всё равно curl: (7) Couldn't connect to server
docker-compose.yml:
version: '2'
services:
app:
build: .
ipc: host
volumes:
- "./tmp:/tmp/"

Anatoly
17.11.2016
20:10:40
Видать остается прибивать порты и роутить их через проксирующий нгинкс

ptchol
17.11.2016
20:17:30
сокеты же это ipc ? поидее если ipc=host то сокет созданный контейнером должен ок читаться и на хосте, нет разве ?

Roman
17.11.2016
20:17:35

Anatoly
17.11.2016
20:18:01

Roman
17.11.2016
20:36:33
Почему?
Перезапусти слушающий процесс в контейнере и все развалится.

Anatoly
17.11.2016
20:43:32

Evgeny
17.11.2016
20:43:57
Он может перезапуститься сам

Stepan
17.11.2016
20:52:52
В итоге я отказался от идеи с сокетами. Вместо этого решил поднять ещё один контейнер с нджинксом и пытаюсь проксировать запросы к приложениям по имени хоста
Но не тут-то было!
…no resolver defined to resolve <container>!
В сети предлагают ставить dnsmasq в контейнер с нджинксом

Google

Anatoly
17.11.2016
20:56:50

Roman
17.11.2016
20:57:41

Dan
17.11.2016
20:57:47

Roman
17.11.2016
20:58:17

Dan
17.11.2016
20:58:22
в dnsmasq

Vlad
17.11.2016
20:58:26

Stepan
17.11.2016
20:59:13
если просто указать resolver 127.0.0.1, то не работает потому-что нужен dnsmasq?

Roman
17.11.2016
21:03:08

Stepan
17.11.2016
21:03:12
как тогда нджинкс узнает айпи контейнера с dnsmasq?

Roman
17.11.2016
21:03:30
Что делать с тем же кроном в контейнере?

Stepan
17.11.2016
21:03:47
я докер-композ использую, если это важно

Anatoly
17.11.2016
21:04:01
У тебя все в композе ты можешь внутри композа ходить по именам контейнеров если они у тебя есть в links

Stepan
17.11.2016
21:04:34
по именам-то я хожу, но нджинкс не резолвит по именам без днс
т.е. приложения отвечают при запросе из нджинкс контейнера типа curl http://<container>:4000/...
а вот сам нджинкс их не видит

Andrey
17.11.2016
21:09:08

Алексей
17.11.2016
21:09:21
мне иногда кажется что перед использованием докера надо форматировать мозг.
просто тупо в ноль

Stepan
17.11.2016
21:09:33
Зачем? :)

Google

Алексей
17.11.2016
21:09:43
ибо из полезных знаний нужно только архитектура пс и юникса

Andrey
17.11.2016
21:09:54
думаешь одного мозга хватит, без целительно эвтаназии?

Алексей
17.11.2016
21:10:00
а вот поведенческие реалии надо удалять
как гланды
Зачем? :)
Степан, докер _требует_ принципиально другого подхода.

Andrey
17.11.2016
21:11:13
а это ведь всякие свармы пока относительно экзотика

Anatoly
17.11.2016
21:11:16

Алексей
17.11.2016
21:11:21
можно принести с собой старые игрушки в песочницу, но играть там будет не интересно.
как получше то объяснить ?

Admin
ERROR: S client not available

Stepan
17.11.2016
21:12:50
если добавить links, nginx в контейнере всё равно не резолвит остальные контейнеры по хостнеймам

Алексей
17.11.2016
21:12:53
надо обязательно считать что у вас микросервисы. и горизонтальная масштабируемость

Andrey
17.11.2016
21:12:54
я вот как то пока не могу для себе обосновать, зачем нгинкс, вообще туда пихать, ну кроме как в случае чтоб красиво пруф оф концепты показывать

Алексей
17.11.2016
21:13:20
и еще считать что _всё_ не локальное.
и что писать на винт _нельзя_

Andrey
17.11.2016
21:13:47

Stepan
17.11.2016
21:14:07
version: '2'
services:
galton_nginx:
image: nginx
container_name: galton_nginx
ports:
- "4000:80"
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
links:
- moscow_russia_car
moscow_russia_car:
image: urbica/galton
hostname: moscow_russia_car
container_name: moscow_russia_car
volumes:
- ./extracts:/extracts
- ./data/moscow_russia_car:/data
command: ["https://s3.amazonaws.com/metro-extracts.mapzen.com/moscow_russia.osm.pbf", "car"]
как-то так

Anatoly
17.11.2016
21:14:19

Алексей
17.11.2016
21:14:46
Что?
а вот так. писать можно только в базу данных.
которая не в докере.

Google

Anatoly
17.11.2016
21:15:30

Andrey
17.11.2016
21:18:18


Алексей
17.11.2016
21:18:20
цепочка рассуждений выглядит так
1. докер непременно сломается.
2. ваш баг будет уникальный и его починят через 3 месяца минимум
3. ваш баг будет мешать вам жить два раза в день
4. для решения проблем вам надо будет перезагрузить хост
5. перезагрузка хоста — простой
6. данные надо хранить
7. идеальный файловых систем которые позволяет писать в сеть пока нету. но есть условно не плохие. но сложные.
8. докер очень не простой способ стрельнуть себе в ногу.
9. я за докер :)
#docker #молодец #этаужасно

Stepan
17.11.2016
21:19:16

Andrey
17.11.2016
21:19:37
враньё всё он пингует

Stepan
17.11.2016
21:19:45
и поэтому надо куда-то прикручивать днс-маск

Andrey
17.11.2016
21:19:49
ресолвит

Алексей
17.11.2016
21:20:11
и заменить их на network диретиву
тогда включится внутренний днс и все будет хорошо

Stepan
17.11.2016
21:20:34
такого я ещё не пробовал

Anatoly
17.11.2016
21:21:12
и логи тоже.
Чем и в какую базу вы пишите логи из доккер контейнера? Как оно ведет себя при падении сети на хосте? Как оно ведет себя при падении базы?

Алексей
17.11.2016
21:22:02

Serhio
17.11.2016
21:22:04
у меня работает так:
nginx:
restart: always
hostname: nginx
privileged: true
image: serhio/openresty:somaxconn
ports:
- 80:80
- 443:443
- 7013:7013
- 7015:7015
- 7020:7020
links:
- "phpfpm0:php0"
в конфиге nginx
upstream backend {
least_conn;
server php0:9000;
}

Алексей
17.11.2016
21:22:15
из него journalbeat

Anatoly
17.11.2016
21:22:35
Ясно понятно спасибо

Roman
17.11.2016
21:22:45

Алексей
17.11.2016
21:23:05
но он упрощает деланье демо.

Andrey
17.11.2016
21:23:26
да ты шо, а пацаны то и не знали