@docker_ru

Страница 1331 из 1375
Алихан
11.07.2019
17:34:48
Или используй вольюмы или делай все при сборке в докерфайле

Ну или маунт, там сам смотри как тебе удобнее)

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 проходят бездолезнено

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. Кто с таким сталкивался?

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 подготавливать дамп для каждой новой ревизии

Примонтировал чисто *.sql файлы
ну, они отработают при старте постгреса

и что не так?

Alexander
11.07.2019
19:45:09
ну, они отработают при старте постгреса
Вот что-то не отрабатывают)

Там миграции с geonames

George
11.07.2019
19:45:32
ну, пока неясно, что у тебя не так. Вольюм они подцеплять должны

Там миграции с geonames
и что? это непринципиально, кмк. Или там extension какие-то используются*

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
Permission Denied не пишет
ему все равно права на файлы могут не нравиться

попробуй сделать так - сделай свой кастомный постгрес образ и через COPY закинь внутрь эти миграции

если отработает, то это даст намек, куда копать в дальнейшем

zizo
11.07.2019
19:59:55
что у тебя в resolv.conf внутри контейнера?
root@test2:~# docker run -ti --dns=169.254.1.1 --entrypoint "/bin/cat" byrnedo/alpine-curl /etc/resolv.conf nameserver 169.254.1.1

George
11.07.2019
20:00:18
эм. а этот узел контейнеру вообще доступен?

Alexander
11.07.2019
20:00:36
если отработает, то это даст намек, куда копать в дальнейшем
В общем, миграции правильнее держать в отдельном контейнере и накатывать через него, верно? Т.е. использовать механизм контейнера PostgreSQL, а не, например, db-migrate-pg для Node.js?

Google
George
11.07.2019
20:00:59
Ты сам дамп захотел вливать

в целом, да - отдельный контейнер для миграций.

Alexander
11.07.2019
20:01:44
zizo
11.07.2019
20:02:07
эм. а этот узел контейнеру вообще доступен?
ну это на локал хосте dummy interface, просто с хоста работает dig @169.254.1.1 +short backend.service.staging.consul

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

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
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.
довольно запарный путь через iptables ) в гайде он в разделе “не рекомендуется” ) пинганул кстати dns из контейнера docker run -ti --dns=169.254.1.1 --entrypoint "/bin/ping" byrnedo/alpine-curl 169.254.1.1 PING 169.254.1.1 (169.254.1.1): 56 data bytes 64 bytes from 169.254.1.1: seq=0 ttl=64 time=0.082 ms 64 bytes from 169.254.1.1: seq=1 ttl=64 time=0.123 ms 64 bytes from 169.254.1.1: seq=2 ttl=64 time=0.138 ms

George
11.07.2019
20:12:20
может консул недонастроен, хз

zizo
11.07.2019
22:57:40
может консул недонастроен, хз
если интересно, то там были какие-то мудреные правила iptables в имедже docker-18-04 на DO, я их почистил и все заработало

Алексей
12.07.2019
03:58:03
как из одного контейнера достучатся до другого в котором redis, как там настроить сеть чтобы работало?

Sergei
12.07.2019
04:02:21
как из одного контейнера достучатся до другого в котором redis, как там настроить сеть чтобы работало?
Если используете docker-compose, то в описании сервиса redis укажите link на первый контейнер. Оттуда уже redis будет доступен по имени сервиса в качестве домена

Страница 1331 из 1375