
Игорь
30.05.2018
22:14:09
1. command .... && tail -f /dev/null
2. вырубить демон и срать в консоль, не отпустит процесс - не выключиться контейнер
3. стартануть uwsgi без демона
4. забить на все и сделать docker-compose up -d, но образ надо проверить... чтоб срал по п.2,3

xPushkin
30.05.2018
22:14:25
... &

Игорь
30.05.2018
22:14:58
nohup и & ляжет скорее всего
там все-таки uwsgi, гуни

Google

Игорь
30.05.2018
22:15:32
вернут управление тобишь, и все
но, возможно я ошибаюсь, just try

Melis
30.05.2018
22:22:25
комманды в 11, 12 строках - демоны

Vlad
30.05.2018
23:10:10
Как правильно упаковывать фронтенд для прода? Его должен отдавать nginx. Как их скоммутировать?

Дмитрий
31.05.2018
05:46:54
Не могу понять, запустил на vds контейнер с апачем+пхп, всё стартует, а как из сети зайти в него?

Kirill
31.05.2018
05:50:50

Дмитрий
31.05.2018
05:51:15
покажи как создал контейнеры.
version: "2"
services:
www:
build: .
ports:
- "8001:80"
volumes:
- ./project:/var/www/notification
- ./apache2:/etc/apache2
links:
- db
networks:
- default
db:
image: mysql:5.7
entrypoint: ['/entrypoint.sh', '--character-set-server=utf8', '--collation-server=utf8_general_ci']
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: notifications
MYSQL_USER: user
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: test
volumes:
- ./dump:/docker-entrypoint-initdb.d
- persistent:/var/lib/mysql
networks:
- default
phpmyadmin:
image: phpmyadmin/phpmyadmin:4.6
links:
- db:db
ports:
- 8000:80
environment:
MYSQL_USER: user
MYSQL_PASSWORD: test
MYSQL_ROOT_PASSWORD: test
volumes:
persistent:

Kirill
31.05.2018
05:51:45

Дмитрий
31.05.2018
05:52:09

Kirill
31.05.2018
05:52:53

Ванько
31.05.2018
05:53:02
Не тому походу написал

Google

Дмитрий
31.05.2018
05:53:16
О, сработало, спасибо!
Еще вопрос, как избавиться от порта?
Чтобы по прямому адресу работало

Nurlan
31.05.2018
05:53:51

Kirill
31.05.2018
05:53:56

Nurlan
31.05.2018
05:54:07
www:
build: .
ports:
- "80:80"

Дмитрий
31.05.2018
05:55:47
Спасибо!

Andrey
31.05.2018
06:56:20
С башем проще docker exec -it idcontener bash
А вообще поставь ранчера и через него билдь
Проще

Андрэ
31.05.2018
08:06:39
Товарищи, сдается мне вопрос частый и банальный, но что-то не найду ответа( При shared volume между контейнерами в docker-compose, как указать конкретно, из какого контейнера надо брать даныне? ну если шаринг между app1 app2 и app3, чтобы там данные из app1 гарантировано лежали?

Анатолий
31.05.2018
08:08:10
shared volume это "диск" подключенный ко всем твоим контейнерам, куда ты его подключил

Андрэ
31.05.2018
08:08:34
может неверно выражаюсь.
volumes:
src:

Анатолий
31.05.2018
08:10:00
нужен контекст, что пытаешься сделать и чего хочешь получить?

Андрэ
31.05.2018
08:10:06
сдается мне, я концепцию неверно понял) это можно использовать как проброс папки с одно контейнера в другие?
есть контейнер с приложением, есть nginx Надо в nginx пробросить статику

Анатолий
31.05.2018
08:11:20
положи статику по пути который подключаешь и она будет доступна в обоих контейнерах

Андрэ
31.05.2018
08:11:48
Он она уже в контейнере с приложением. Что значит "положить по пути"?
То есть, есть два контейнера. на хостовой машине нет ничего

Google

Анатолий
31.05.2018
08:12:24
а где volume?

Андрэ
31.05.2018
08:13:51
Давай сначала. Я думал, что указав вот так (как выше) volume, я могу сделать следующее: в этот волюм попадет папка из контейнера app и я смогу ее прокинуть в контейнер nginx (то есть между контейнерами, без участия хоста)
Вот такую задачу можно решить?

Анатолий
31.05.2018
08:14:03
$ docker volume inspect my-vol
[
{
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/my-vol/_data",
"Name": "my-vol",
"Options": {},
"Scope": "local"
}
]

Bohdan
31.05.2018
08:14:11
вон выше кинули

Эмин
31.05.2018
08:14:24
во второй версии была такая директива volumes_from

Андрэ
31.05.2018
08:14:33
а, ок. Пусть присутствует, я уже понял, что ошибся в предположениях

Анатолий
31.05.2018
08:14:34
это общее место, оно не весит в воздухе

Эмин
31.05.2018
08:14:37
на счет третей версии композа точно не помню

Bohdan
31.05.2018
08:14:52

Андрэ
31.05.2018
08:15:14
ну вот вопрос в том, чтобы гарантировано указать, что в этот волюм данные из контейнера A прокинуться

Анатолий
31.05.2018
08:15:18
когда ты добавляешь volume в контейнер - ты указываешь как будет называться папка в контейнере

Андрэ
31.05.2018
08:15:21
а, то есть в третьей версии нет?

Анатолий
31.05.2018
08:15:36
для nginx укажи /var/www/html к примеру и она будет доступна с дефолтного хоста
думаю чтобы не путаться лучше во всех контейнерах одинаковый путь оставить

Андрэ
31.05.2018
08:16:34
ну смотри, сейчас у меня вот как-то так:
app:
volume:
src:/path
nginx:
volumes:
src:/path
volumes:
src: (не смотрите на отступы, пишу руками)

Bohdan
31.05.2018
08:16:44
ну если прокидывать без named volumes - тогда вроде хостовые данные имеют приоритет

Анатолий
31.05.2018
08:16:47
чтобы статика была доступна с Nginx - она должна лежать в папке где настроен виртуальный хост

Андрэ
31.05.2018
08:16:55
и в `src`у меня содержимое контейнера nginx.

Google

Bohdan
31.05.2018
08:17:05

Андрэ
31.05.2018
08:17:16
А, то есть скорее всего при первом запуске на хосте папка создалсь

Анатолий
31.05.2018
08:17:20
ну всё в /path будут твои данные

Андрэ
31.05.2018
08:17:21
и теперь она стала приоритетом?

Bohdan
31.05.2018
08:17:39
у меня так

Андрэ
31.05.2018
08:17:55

Bohdan
31.05.2018
08:17:56
и при этом папка даже может не существовать на хосте
я наоборот ушел к такому от прокинутой вольюмами папки)

Андрэ
31.05.2018
08:18:32
У меня в gitlab ci при сборке приложения сразу и собирает образ nginx со статикой

Bohdan
31.05.2018
08:18:48
тем более, что переопределить ее вольюмом можно когда угодно

Анатолий
31.05.2018
08:19:24
ну смысл же чтобы не билдить каждый раз образ когда меняется статика?

Андрэ
31.05.2018
08:19:44

Анатолий
31.05.2018
08:19:52
ну так в чем проблема то?

Андрэ
31.05.2018
08:20:04
мне по хорошем кастомный nginx только для этого и нужен. я бы от него вообще отказать хотел
Желание: отказаться от кастомного образа nginx со статикой внутри и использовать (например) nginx официальный и просто статику волюмом в него пробрасывать с контейнера приложения

Эмин
31.05.2018
08:21:14
Ребята, мне кажется для прода наоборот образы должны быть без волюмов. Все необходимые данные уже должны быть в образах, в том числе и исходных код приложений и статики. Таким образом можно очень быстро откатывать в случае неудачного релиза.

Андрэ
31.05.2018
08:21:36
Согласен. У меня сейчас в голове "качели" между подходами
Теперь уже склоняюсь к тому, чтобы внутре было все

Эмин
31.05.2018
08:21:51
волюмы нужны при разработке

Google

Bohdan
31.05.2018
08:22:24

Анатолий
31.05.2018
08:24:04
а если у вас статику на проект может загрузить менеджер в любое время??
картинку в новость там или что...
имхо можно поделить статику на 2 части - папку где ничего не меняется - зашивать, папку в которую грузят картинки и т.д. из админки проекта - делать volume, и синхронизировать раз в какое-то время через тот же rsync

Андрэ
31.05.2018
08:26:06
в принципе вариант, когда у меня при билде приложение на выходе два образа делаются - приложение и nginx - тоже пойдет

Bohdan
31.05.2018
08:26:11
ну картинки - это не статика, а ассеты
по уму это вообще на s3 какой надо складывать или подобную штуку

Nurlan
31.05.2018
08:30:00
www.minio.io - крутая штука с поддержкой Amazon S3 API может кому интересно будет

Den
31.05.2018
08:50:19

Дмитрий
31.05.2018
08:52:26
Не понимаю, как при первом запуске контейнера с бд загрузить в неё дамп базы данных в атоматическом режиме, и как потом база будет реагировать, если при каждом запуске будет пытаться примениться дамп. И будут ли где-то храниться данные, которые будут внесены в базу уже в процессе работы контейнера?

Андрэ
31.05.2018
08:52:53

Den
31.05.2018
08:53:44
Я может не совсем понял вопрос. А в чем минус такого подхода? Если тебе надо с двух контейнеров на одном хост5 иметь доступ в одну папку ?

Дмитрий
31.05.2018
08:56:55

Дмитрий
31.05.2018
08:57:38
Если, скажем, отлаживать это дело, нужно каждый раз удалять контейнер, чтобы проверить, применилось ли?

Дмитрий
31.05.2018
08:59:00

Sergey
31.05.2018
09:00:44

Дмитрий
31.05.2018
09:01:17
Я вот думаю, может надо таки удалять все контейнеры?

Sergey
31.05.2018
09:02:08
у вас может не пробрасываться том правильно если прав нет на точку монтирования