Алихан
11.07.2019
17:34:48
Или используй вольюмы или делай все при сборке в докерфайле
Ну или маунт, там сам смотри как тебе удобнее)
inqfen
11.07.2019
17:42:48
Green
11.07.2019
17:58:32
Google
aaalitvinov
11.07.2019
17:58:58
Держи
Спасибо добрый человек))
Дмитрий
11.07.2019
18:10:10
docker-compose stop и docker-compose start решили мою проблему. up и down видать для создания с нуля
при stop start изменяния в docker-compose проходят бездолезнено
George
11.07.2019
18:16:45
Corsars
11.07.2019
19:18:48
Дмитрий
11.07.2019
19:20:27
ок почитаю что это
Алихан
11.07.2019
19:20:40
а чем тебе вольюмы/маунт не подошли?
Alexander
11.07.2019
19:39:33
Всем вечер добрый!
Подскажите, пожалуйста.
Есть порядка 20 миграций, которые лежат в контейнере с Node.js приложением. Из них есть один дамп, который должен накатываться в порядке очередности где-то в середине всех миграций в контейнер с PostgreSQL.
У меня как-то мысли заканчиваются как это сделать без использования pg_restore, которого тупо нет в контейнере Node.js.
Кто с таким сталкивался?
George
11.07.2019
19:40:05
как бы миграции лучше выносить в отдельный контейнер
Alexander
11.07.2019
19:40:30
Разработчики держат миграции вместе с кодом
George
11.07.2019
19:40:42
ну, и pg_restore ты можешь хитрым образом вызвать из контейнера с постгресом
нужно только файл туда загнать
Google
Alexander
11.07.2019
19:41:04
Вот я файлы примонтировал
George
11.07.2019
19:41:07
но фишка том, что это отдельный процесс (не в понятии потоков, а в понятии именно последовательности действий)
Alexander
11.07.2019
19:41:17
Да, понимаю
George
11.07.2019
19:41:28
и вообще - когда у тебя приложение скейлится, то тогда тебе ТОЧНО миграции нужны отдельным контейнером
иначе труба
Alexander
11.07.2019
19:42:02
куда и как?
Сорри, я не уточнил. Я эту операцию хочу провести на CI, чтобы после этого запустить интеграционные тесты.
Примонтировал с workspace в docker-entrypoint-initdb.d
Примонтировал чисто *.sql файлы
George
11.07.2019
19:44:12
о мой мозг
пока кажется, что тебе проще в CI подготавливать дамп для каждой новой ревизии
и что не так?
Alexander
11.07.2019
19:45:09
Там миграции с geonames
George
11.07.2019
19:45:32
ну, пока неясно, что у тебя не так. Вольюм они подцеплять должны
Alexander
11.07.2019
19:46:13
Postgis юзается, да
И контейнер юзаю mdillon/postgis
Google
Alexander
11.07.2019
19:47:09
И контейнер основан на официальном образе postgres, так что и проблем быть не должно
Логи почему-то пишут это:
psql:/docker-entrypoint-initdb.d/*.up.sql:0: could not read from input file: Is a directory
Каким боком это директория=\
George
11.07.2019
19:48:51
а ты зайди в каталог и посмотри
на рабочем контейнере
может криво замонтировалось
Alexander
11.07.2019
19:49:14
Там только sql-файлы, смотрел
binka
11.07.2019
19:49:45
George
11.07.2019
19:51:19
ls -la /docker-entrypoint-initdb.d/
покажи
zizo
11.07.2019
19:54:36
есть идеи ? ?
root@test2:~# dig @169.254.1.1 +short backend.service.staging.consul
10.133.31.150
root@test2:~# docker run -ti --dns=169.254.1.1 byrnedo/alpine-curl http://backend.service.staging.consul:3010
curl: (6) Could not resolve host: backend.service.staging.consul
Alexander
11.07.2019
19:55:19
George
11.07.2019
19:55:33
что у тебя в resolv.conf внутри контейнера?
Alexander
11.07.2019
19:55:35
Permission Denied не пишет
George
11.07.2019
19:56:17
попробуй сделать так - сделай свой кастомный постгрес образ и через COPY закинь внутрь эти миграции
если отработает, то это даст намек, куда копать в дальнейшем
zizo
11.07.2019
19:59:55
George
11.07.2019
20:00:18
эм. а этот узел контейнеру вообще доступен?
Alexander
11.07.2019
20:00:36
Google
George
11.07.2019
20:00:59
Ты сам дамп захотел вливать
в целом, да - отдельный контейнер для миграций.
Alexander
11.07.2019
20:01:44
zizo
11.07.2019
20:02:07
Alexander
11.07.2019
20:02:14
Но суть понял.
Спасибо!
George
11.07.2019
20:02:19
эм
@luddite478 а как он в дамми интерфейс сходит?
у тебя вообще 169.254.1.1 из контейнера доступен?
может проблема не в днс как таковом, а в том, что докер не может туда пакет засунуть из контейнера?
NAT там, все дела
zizo
11.07.2019
20:03:26
я думал, что там нет никаких ограничений
кроме локал хоста
ваще я по этому гайду делал, странно
https://medium.com/zendesk-engineering/making-docker-and-consul-get-along-5fceda1d52b9
George
11.07.2019
20:06:00
Configuring Consul to bind to all interfaces. That would make the HTTP and CLI RPC ports open to the world unless we also craft iptables(8) rules to block requests from foreign hosts. In addition, we’d have to ensure the containers know the IP address of the host they’re running on in order to communicate with its Consul agent.
сделай так
Igor
11.07.2019
20:06:39
Подскажите плз что делаю не так.
Есть билд:
FROM node:10 AS build
WORKDIR /build
COPY . .
RUN npm install --dev && npm run build
FROM nginx:1.17.1-alpine
WORKDIR /app
COPY --from=build /build/dist /app
COPY --from=build /build/docker-entrypoint.sh /app
RUN chmod +x /app/docker-entrypoint.sh
EXPOSE 80
ENTRYPOINT ["/bin/sh", "./docker-entrypoint.sh"]
Есть энтрипоинт:
#!/bin/sh
cat <<'EOF' > /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://$BACKEND_HOST;
}
}
EOF
exec nginx -g 'daemon off;' "$@"
Но почему при поднятии контейнера через композ где прописано
environment:
- BACKEND_HOST=test.host:5000
Значение не прокидывается
в логах
nginx: [emerg] unknown "backend_host" variable
2019/07/11 20:04:09 [emerg] 1#1: unknown "backend_host" variable
George
11.07.2019
20:07:38
если кратко - у мнея большое подозрение, что у тебя $BACKEND_HOST внутри HEREDOC не распаковывается
Igor
11.07.2019
20:09:58
т.е. envsubst это бест практис для такого кейса?
Google
Igor
11.07.2019
20:10:20
я просто че то не смог нормально нагуглить примеров...
George
11.07.2019
20:10:21
ну мне он не нравится, но это явно лучше, чем sed
Igor
11.07.2019
20:10:32
ок, спасибо
George
11.07.2019
20:11:23
https://github.com/nginxinc/docker-nginx/issues/248
что-то такое
Igor
11.07.2019
20:11:44
благодарю
zizo
11.07.2019
20:11:54
George
11.07.2019
20:12:20
может консул недонастроен, хз
zizo
11.07.2019
22:57:40
может консул недонастроен, хз
если интересно, то там были какие-то мудреные правила iptables в имедже docker-18-04 на DO, я их почистил и все заработало
George
12.07.2019
03:57:13
Алексей
12.07.2019
03:58:03
как из одного контейнера достучатся до другого в котором redis, как там настроить сеть чтобы работало?
Sergei
12.07.2019
04:02:21