
Bohdan
07.06.2018
19:35:10
а если в скрипте проверить все через вызов printenv?

Boris
07.06.2018
19:36:43
Пробовал делать echo переменной, перед самым запуском docker-compose.
Переменную пишет и тут же сообщает об её отсутствии в docker-compose
Возможно из bash скрипта докер запускается от другого юзера, и не имеет доступа ко всем переменным?

Sergey
07.06.2018
21:37:58

Google

Sergey
07.06.2018
21:38:34
вопрос как ты объявил переменную в сессии (если просто FOO="bar" то надо еще set -a вроде, не помню... allexport типа)
а если через export - то надо смотреть как ты юзаешь переменную в compose
можешь ради эксперемента вызвать любой bash скрипт который выводит переменную окружения.
поведение в целом должно быть идентичным

Oleg
08.06.2018
01:28:51
есть композ из 2х контейнеров, если я расишряю один имедж, то будут параметры из композа переданы в расширеный имедж или нужно что-то указывать?

Vladimir
08.06.2018
04:04:17
добрый день, есть такой вопрос, я использую image wordpress как мне добавить команду a2enmod headers, перед стартом Apache, через command?

Ayupov
08.06.2018
06:22:05
Всем привет.
FROM node:carbon
WORKDIR /usr/src/app
COPY . .
RUN npm install
EXPOSE 8080
CMD [ "npm", "start" ]
Docker поднимается, но по порту
не может получить доступ к сайту. Не знаете в чем может быть причина?
docker run -p 92:8080 $image_name

Vladimir
08.06.2018
06:31:27
А что говорит
netstat -ntlp | grep 92
docker ps -a
?

Эмин
08.06.2018
06:32:15
вы с хостовой машины не можете получить доступ к сайту?
или поднятый докер не может получить доступ в другой контейнер?

Сергей
08.06.2018
06:33:24

Google

Ayupov
08.06.2018
06:36:01

Vladimir
08.06.2018
06:44:26
тогда надо смотреть логи контейнера, что всё работает

Yuryi
08.06.2018
07:02:11

Sergey
08.06.2018
07:15:11
можно указать откуда кэш брать, но no-cache в композе нет

Ayupov
08.06.2018
07:16:40

Yuryi
08.06.2018
07:16:43

Bohdan
08.06.2018
07:18:01
костылем - подкидывай какой-нибудь рандомный файлик или идентификатор

Yuryi
08.06.2018
07:20:31

Bohdan
08.06.2018
07:21:56
ну там примитивный вариант - делать каждый раз что-то вроде RUN tail /dev/urandom > random.txt перед шагом со сборкой
должно по идее сработать
вру, tail не сработает
а head у меня локально сработал

Artem
08.06.2018
07:22:31
а покажи докерфайл

Yuryi
08.06.2018
07:28:27

Artem
08.06.2018
07:32:28
не уверен, но попробуй сверху добавить RUN apt update

Sergey
08.06.2018
07:55:51
предлагаю через ENV прокидывать в докер имя варника, а папка с варниками будет содержать разные версии файлов, и каждая новая версия (war.1.1.39, war.1.2.1.39) будет пересобирать докер на том слое где в прошлый раз вызывался варник

Yuryi
08.06.2018
07:58:38
окей, спс, попробую

Max
08.06.2018
08:03:29
Бред какой-то - смысл варник пихать в контейнер?
Лучше ложить его на волюме и при деплойменте настроить удаление-добавление варника на волюме.
Будет прирост в сборке, так как контейнер не пересобирается, а просто рестартится при добавлении нового варника.

Google

Max
08.06.2018
08:04:48
этоже надо потом парится с подкачкой нового слоя в регистри в будудем и потом подтягивание новых изменений на сервере. Много дополнительной и ненужной работы.

Sergey
08.06.2018
08:10:25
в любом случае даже если вы в том прокинете с новой версией пакета будет пересборка

Max
08.06.2018
08:12:56
а зачем пробрасывать версию варника? Томкэту вообще все-равно что за варник лежит - он в директорию смотрит и ищет варники

Yuryi
08.06.2018
08:14:33


Max
08.06.2018
08:20:59
Ну правильно он думаэт, по этому со скрипта деплоя нужно перезапустить докер контейнер (убить запущеный томкэт, чтобы он по новой разпаковал варник.
Это просто костыльное решение. Пихать что-то в контейнер есть смысл если это должен быть самодостаточный контейнер, да и то - с бинарником готовым, а не архив, который еще потом разпаковать нужно.
постройте 1 контейнер с томкэтом и натравливайте его на директорию с варником (директорию вынести на волюме). Таким образом если у вас 10-Н сервисов - нужно будет просто реплейз и рестарт контейнера делать, вместо полного ребилода контенера с новым варником. Реюз будет одного и того же контенера (а не 10-Н новых). Это простая оптимизация.

Sergey
08.06.2018
08:25:08
в любом случае оба наши решения - костыли

Max
08.06.2018
08:26:41
паз то другой будет для другого арр. А узнает он по вашей команде - вы пошлете команду докеру перезапустить контиейнер. Докер не хранит темповские файлы - он заново прочитает фолдер с варником и разпакует варник по новой

Sergey
08.06.2018
08:26:47
можно вообще упороться, в гитлабе раннером собирать новый образ, пушить его в репу и уже деплоить в композе\кубере с новыми варниками

Max
08.06.2018
08:34:55

Sergey
08.06.2018
08:35:34
кладешь вариник - тык и готово:)

Yuryi
08.06.2018
08:37:23
я чутка ограничен. Заказчик хочет видеть 3 файла: докерфайл, компоуз-файл и енв для компоуза. Абсолютно все операции мол надо производить в них.

Sergey
08.06.2018
08:38:11

Yuryi
08.06.2018
08:38:16
сиайка для этих операций - низя

Dmitry
08.06.2018
11:57:21
Парни, такой вопрос. А нельзя в докерфайлы вставлять алиасы инструкций? Например я хочу при билде каждого контейнера делать одинаковые команды, но описать их в одном месте, чтобы потом просто изменить.

Евгений
08.06.2018
11:58:01
Можешь запускать какой-то sh файл где будут команды, подходит?

Google

Andrey
08.06.2018
11:58:22
либо базовый образ использовать

Dmitry
08.06.2018
12:10:13
Проще всего получается накопироваать

Alexandra
08.06.2018
12:47:51
Привет. Такой вопрос:
Я использую "storage-driver": "devicemapper" и образы по умолчанию как я понимаю лежат в /var/lib/docker/devicemapper/devicemapper
может кто-нибудь ткнуть меня носом в ссылку как заставить его хранить их в другом месте?

And
08.06.2018
12:55:40
Привет. Кто-нибудь nginx+letsencrypt в swarm поднимал? Мне надо чтоб инстансы nginx были на всех нодах, везде есть веб-приложения. При этом как я понимаю остальные контейнеры можно держать только на менеджере. Но сходу не работает, поделитесь опытом.

Play
08.06.2018
12:59:11

Jentry
08.06.2018
13:05:54

And
08.06.2018
13:07:47

Jentry
08.06.2018
13:13:26
веб-сайты на воркерах и менеджерах это запредельные космические технологии, попробуй начать с декомпозиции вопроса

Boris
08.06.2018
13:14:27
Сложно понять вопрос, но если я правильно его понял - проще всего поставить сертификат только на балансере

And
08.06.2018
13:49:09
Мне казалось все итак понятно.. ок. Есть swarm с одним менеджером и одним воркером. На каждом запущено по 1 сайту. Своего сертификата нет, их выдаёт динамически letsencrypt. Как в swarm на менеджере добавить стек nginx+letsencrypt так, чтобы оба сайта стали доступны из вне по доменам, указанным в VIRTUAL_HOST в соответствующих контейнерах сайтов? Масштабирование и балансировщик сейчас не рассматриваем.

Artiom
08.06.2018
14:40:25
Всем привет. Может кто знает, как в docker-compose.yml можно скрыть внешний ip контейнера и задать только внутренний ip (что бы к контейнеру не было доступа через docker exec -ti id bash).

Andrey
08.06.2018
14:42:32
Причем здесь ip?

Данила
08.06.2018
14:43:14

Andrey
08.06.2018
14:43:30
Docker exec не по сети (контейнера) работает

Данила
08.06.2018
14:43:46
Очевидное решение - убери bash из контейнера

Artiom
08.06.2018
14:45:32
хорошо. мне надо закрыть доступ к контейнеру из вне и создать доступ только через ssh
под ssh я понимаю контейнер

Artur
08.06.2018
15:00:28

Google

Artiom
08.06.2018
15:29:57
Видимо не так объяснил ) у меня есть контейнер php. он расположен на 172.24.0.3. Например можно написать ping 172.24.0.3 и мы получим ответ от него (64 bytes from 172.24.0.3: icmp_seq=1 ttl=64 time=0.144 ms). Как можно сделать так, что бы доступа не было?

Kirill
08.06.2018
15:58:00
И разрешить только нужные порты

Artiom
08.06.2018
16:24:06
Скажите пожалуйста, ip для контейнера всегда надо или его генерацию можно как-то отключить?

Igor
08.06.2018
18:40:46
гитхаб? майкрософт здесь не пройдет, разве что в окно