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
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
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
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"
AstraSerg
10.12.2018
11:28:35
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
Aleksei
11.12.2018
10:02:31
Rustam
11.12.2018
10:03:03
если приложение умеет мигрировать схему, зачем складывать результаты в образ? Пусть себе мигрирует, а в образ с БД останется только положить init скрипты, если нужны
User ?
11.12.2018
10:07:42
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
AstraSerg
11.12.2018
12:39:08
Eugene
11.12.2018
12:42:07
Короче у меня стандартное "Couldn't connect to Docker daemon at http+docker://localhost - is it running?", но побороть не могу. Пользователь в группу docker добавлен. Началось внезапно. ниче не менял...
AstraSerg
11.12.2018
12:43:41
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 - там выше видно
причем - ошибка не на всем выскакивает
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
уже пробовал такой вариант
причем ошибка не на каждом запуске докера возникает