Алихан
И им экспериментировать
Алихан
Изменение конфига в докер композе равносильно пересозданию контейнера
Алихан
Так что понятно почему он потер все что ты сделал
Алихан
Или используй вольюмы или делай все при сборке в докерфайле
Алихан
Ну или маунт, там сам смотри как тебе удобнее)
Green
#Docker [RU] Эдриен Моуэт | Использование Docker #2017 @bzd_channel
aaalitvinov
Держи
Спасибо добрый человек))
Дмитрий
docker-compose stop и docker-compose start решили мою проблему. up и down видать для создания с нуля
Дмитрий
при stop start изменяния в docker-compose проходят бездолезнено
Дмитрий
ок почитаю что это
Алихан
а чем тебе вольюмы/маунт не подошли?
Alexander
Всем вечер добрый! Подскажите, пожалуйста. Есть порядка 20 миграций, которые лежат в контейнере с Node.js приложением. Из них есть один дамп, который должен накатываться в порядке очередности где-то в середине всех миграций в контейнер с PostgreSQL. У меня как-то мысли заканчиваются как это сделать без использования pg_restore, которого тупо нет в контейнере Node.js. Кто с таким сталкивался?
George
как бы миграции лучше выносить в отдельный контейнер
Alexander
Разработчики держат миграции вместе с кодом
George
ну, и pg_restore ты можешь хитрым образом вызвать из контейнера с постгресом
George
нужно только файл туда загнать
Alexander
Вот я файлы примонтировал
George
но фишка том, что это отдельный процесс (не в понятии потоков, а в понятии именно последовательности действий)
Alexander
Да, понимаю
George
и вообще - когда у тебя приложение скейлится, то тогда тебе ТОЧНО миграции нужны отдельным контейнером
George
иначе труба
Alexander
куда и как?
Сорри, я не уточнил. Я эту операцию хочу провести на CI, чтобы после этого запустить интеграционные тесты. Примонтировал с workspace в docker-entrypoint-initdb.d
Alexander
Примонтировал чисто *.sql файлы
George
о мой мозг
George
пока кажется, что тебе проще в CI подготавливать дамп для каждой новой ревизии
George
Примонтировал чисто *.sql файлы
ну, они отработают при старте постгреса
George
и что не так?
Alexander
ну, они отработают при старте постгреса
Вот что-то не отрабатывают)
Alexander
Там миграции с geonames
George
ну, пока неясно, что у тебя не так. Вольюм они подцеплять должны
George
Там миграции с geonames
и что? это непринципиально, кмк. Или там extension какие-то используются*
Alexander
Postgis юзается, да
Alexander
И контейнер юзаю mdillon/postgis
Alexander
И контейнер основан на официальном образе postgres, так что и проблем быть не должно
Alexander
Логи почему-то пишут это: psql:/docker-entrypoint-initdb.d/*.up.sql:0: could not read from input file: Is a directory
Alexander
Каким боком это директория=\
George
а ты зайди в каталог и посмотри
George
на рабочем контейнере
George
может криво замонтировалось
Alexander
Там только sql-файлы, смотрел
Anonymous
А как его сделать?))
На офсайте есть обучение с терминалом
George
ls -la /docker-entrypoint-initdb.d/
George
покажи
Roman
есть идеи ? 🙁 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
George
что у тебя в resolv.conf внутри контейнера?
Alexander
Permission Denied не пишет
George
Permission Denied не пишет
ему все равно права на файлы могут не нравиться
George
попробуй сделать так - сделай свой кастомный постгрес образ и через COPY закинь внутрь эти миграции
George
если отработает, то это даст намек, куда копать в дальнейшем
Roman
что у тебя в 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
эм. а этот узел контейнеру вообще доступен?
Alexander
если отработает, то это даст намек, куда копать в дальнейшем
В общем, миграции правильнее держать в отдельном контейнере и накатывать через него, верно? Т.е. использовать механизм контейнера PostgreSQL, а не, например, db-migrate-pg для Node.js?
George
Ты сам дамп захотел вливать
George
в целом, да - отдельный контейнер для миграций.
Roman
эм. а этот узел контейнеру вообще доступен?
ну это на локал хосте dummy interface, просто с хоста работает dig @169.254.1.1 +short backend.service.staging.consul
Alexander
Но суть понял. Спасибо!
George
эм
George
@luddite478 а как он в дамми интерфейс сходит?
George
у тебя вообще 169.254.1.1 из контейнера доступен?
George
может проблема не в днс как таковом, а в том, что докер не может туда пакет засунуть из контейнера?
George
NAT там, все дела
Roman
я думал, что там нет никаких ограничений
Roman
кроме локал хоста
Roman
ваще я по этому гайду делал, странно https://medium.com/zendesk-engineering/making-docker-and-consul-get-along-5fceda1d52b9
George
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.
George
сделай так
Igor
Подскажите плз что делаю не так. Есть билд: 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 Значение не прокидывается
Igor
в логах nginx: [emerg] unknown "backend_host" variable 2019/07/11 20:04:09 [emerg] 1#1: unknown "backend_host" variable