@ru_docker

Страница 538 из 610
DHT
10.12.2018
08:43:16
Запускаю node.js сервер в докере такой командой docker run -it --rm --name example -v "$PWD":/usr/src/app -w /usr/src/app -p 8080:3000 node:alpine node index.js. Проблема в том, что для выхода из скрипта приходится останавливать контейнер по id в другой консоли. Можно как-то это автоматизировать?

Yuriy
10.12.2018
08:46:37
entrypoint заюзать например можно

DHT
10.12.2018
08:46:42
Если бы сервер был запущен на локалке, то было бы достаточно нажать Ctrl+C или Ctrl+D. А так как он работает в контейнере, то команды в консоли не поступают в контейнер. Надеюсь понятно объяснил. Может есть какой-то флаг, чтобы команды из консоли шли в контейнер.

Yuriy
10.12.2018
08:47:07
в баш прекрасно идет stdin

Google
Yuriy
10.12.2018
08:47:39
вот прям сегодня на нодовской аппе проверял

DHT
10.12.2018
08:48:14
в баш прекрасно идет stdin
Можно подробнее, как сделать?

Vir
10.12.2018
08:48:22
Докеряне, подскажите, есть ли возможность про запуске docker-compose добавлять в хост ip адреса?

Yuriy
10.12.2018
08:48:29
юзать вместо CMD - ENTRYPOINT

примерно вот такого содержания

#!/bin/sh node web/app.js

DHT
10.12.2018
08:51:30
Чтобы понятней было скрин приложу.

Yuriy
10.12.2018
08:52:06
сочиняем entrypoint.sh

с вот таким содержимым

#!/bin/sh node index.js

и потом запускаем docker run -it --rm --name example -v "$PWD":/usr/src/app -w /usr/src/app -p 8080:3000 node:alpine entrypoint.sh

DHT
10.12.2018
08:59:48
и потом запускаем docker run -it --rm --name example -v "$PWD":/usr/src/app -w /usr/src/app -p 8080:3000 node:alpine entrypoint.sh
Ошибка docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"entrypoint.sh\": executable file not found in $PATH": unknown.

Yuriy
10.12.2018
09:00:21
ну ее в /usr/src/app неплохо положить бы

Google
Yuriy
10.12.2018
09:00:33
и chmod +x сделать

DHT
10.12.2018
09:01:55
ну ее в /usr/src/app неплохо положить бы
Создал в той же папке что и index.js. Файл же должен проброситься. Права на запуск дал.

Yuriy
10.12.2018
09:02:06
ну и возможно надо весь путь до entrypoint указывать

/usr/src/app/entrypoint.sh

docker run -it --rm --name example -v "$PWD":/usr/src/app -w /usr/src/app -p 8080:3000 node:alpine /usr/src/app/entrypoint.sh

DHT
10.12.2018
09:03:50
Yuriy
10.12.2018
09:07:43
Vir
10.12.2018
09:09:13
всем спасибо, решение нашёл что бы добавлялись нужные ip, надо в ямл файл добавить extra_hosts: - "host:IP"

Denys
10.12.2018
17:46:21
почему docker-compose run "done" сообщения в stderr шлет ?

вот например у сервиса есть зависимости > /dev/null всеравно показывает лог done поднятых зависимых сервисов

а & > /dev/null нет

2 > /dev/null уберает инфо о созданных успешно сервисах

wtf

AstraSerg
11.12.2018
08:04:48
а & > /dev/null нет
после амперсанат нужно писать номер канала http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html

Iurii
11.12.2018
08:09:10
а & > /dev/null нет
вначале отработает амперсант и переведет програму в бекграунт, но выхлоп не переведет ее, проще тогда уже /dev/null 2>&1 &

Roman
11.12.2018
08:20:01
если надо все в девнул, то &> /dev/null - без пробела между & и >

AstraSerg
11.12.2018
08:23:01
Roman
11.12.2018
08:23:11
это все гребаный баш =( (вернее. sh)

Iurii
11.12.2018
08:24:25
2 это ты STDERR перенаправляешь)

Google
User ?
11.12.2018
09:22:43
Подскажите, как собрать образ postgresql со своими миграциями? Что сделал: docker run -d --name lmy-postgres -e POSTGRES_USER=SUN -e POSTGRES_PASSWORD=SUN -e POSTGRES_DB=SUN-DB -p 5432:5432 postgres:9.6 Подключился psql -h 127.0.0.1 -p 5432 -U SUN SUN-DB Сделал всякие миграциии Теперь при команде \dt видно таблички Закоммитил docker commit lmy-postgres test-server.labs:5000/lmy-postgres:0.0.1 Запускаю - docker run -d --name lmy-postgres4 -e POSTGRES_USER=SUN -e POSTGRES_PASSWORD=SUN -e POSTGRES_DB=SUN-DB -p 5432:5432 test-server.labs:5000/lmy-postgres:0.0.1 Подключаюсь - и не вижу табличек.

Aleksei
11.12.2018
09:56:44
так данные в volume лежат, а не в образе

для миграций при первом включении есть директория /docker-entrypoint-initdb.d/ помести туда .sh, .sql или .sql.gz файлы, и он их выполнит в алфавитном порядке

User ?
11.12.2018
10:00:06
так данные в volume лежат, а не в образе
Спасибо. Посмотрю как сохранить в образ.

для миграций при первом включении есть директория /docker-entrypoint-initdb.d/ помести туда .sh, .sql или .sql.gz файлы, и он их выполнит в алфавитном порядке
Спасибо, проблема в том, что миграция делается внешним приложением и есть вариант разбираться с тем что оно намигрировало или запихнуть как есть

Rustam
11.12.2018
10:03:03
если приложение умеет мигрировать схему, зачем складывать результаты в образ? Пусть себе мигрирует, а в образ с БД останется только положить init скрипты, если нужны

Rustam
11.12.2018
10:09:34
пусть так. Но таскать с собой в образе уже проинициализированный кластер БД - заказывать себе веселье в будущем, ведь приложение наверное будет развиваться и потребуются изменения в схеме )

User ?
11.12.2018
10:11:57
Eugene
11.12.2018
12:32:34
Парни, привет. Как тут вопрос правильно задавать? Гугл не помог )

Yuriy
11.12.2018
12:37:57
Eugene
11.12.2018
12:42:07
Короче у меня стандартное "Couldn't connect to Docker daemon at http+docker://localhost - is it running?", но побороть не могу. Пользователь в группу docker добавлен. Началось внезапно. ниче не менял...

Eugene
11.12.2018
12:44:07
ага - вообще на сервак не заходил

я в такое сам обычно не верю ))

AstraSerg
11.12.2018
12:44:46
systemctl docker status что говорит?

кроме вас на серваке еще oomkiller может хозяйничать ;)

Google
ranebull
11.12.2018
12:45:52
Чтобы не запутывать человека)

AstraSerg
11.12.2018
12:46:28
ага, поправил, спасибо

у меня: # systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled) Active: active (running) since Sun 2018-11-04 18:55:53 MSK; 1 months 6 days ago Docs: https://docs.docker.com Main PID: 8073 (dockerd)

Eugene
11.12.2018
12:48:08
systemctl docker status что говорит?
из подозрительного только вот это: level=error msg="Handler for GET /containers/json returned error: write unix /var/run/docker.sock->@: write: broken pipe"

и вот это: level=error msg="Handler for POST /v1.36/build returned error: invalid reference format"

AstraSerg
11.12.2018
12:48:47
active (running) есть?

Eugene
11.12.2018
12:48:48
запущено вот так: ├─ 842 /usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:23116

AstraSerg
11.12.2018
12:49:38
офигеть. Значит рестарт нужен

Eugene
11.12.2018
12:49:43
делал

и докера и хоста

AstraSerg
11.12.2018
12:50:17
так, а ls -la /var/run/docker.sock

Eugene
11.12.2018
12:50:37
последнее что делал - это добавлял tcp - там выше видно

так, а ls -la /var/run/docker.sock
srw-rw---- 1 root docker 0 Dec 11 14:43 /var/run/docker.sock

причем - ошибка не на всем выскакивает

AstraSerg
11.12.2018
12:52:19
а вот так: file /var/run/docker.sock

Eugene
11.12.2018
12:53:00
грит что это сокет )

AstraSerg
11.12.2018
12:54:07
а если остановить демон /var/run/docker.sock исчезнет?

Eugene
11.12.2018
12:55:49
да

Google
AstraSerg
11.12.2018
12:56:05
вот жеж сцуко

Eugene
11.12.2018
12:56:06
уже пробовал такой вариант

причем ошибка не на каждом запуске докера возникает

Страница 538 из 610