Sergey
можно указать откуда кэш брать, но no-cache в композе нет
Anonymous
можно указать откуда кэш брать, но no-cache в композе нет
у меня просто там в одном из шагов идёт компиляция варки мавеном. и я хочу, чтобы он её компилил каждый раз заново. Это возможно ? даже если костылями
Bohdan
костылем - подкидывай какой-нибудь рандомный файлик или идентификатор
Anonymous
костылем - подкидывай какой-нибудь рандомный файлик или идентификатор
сори за тупые вопросы. Но подкидывать куда ? в докерфайл ? или в компоуз ? мне вроде советовали, мол если прокинуть переменную в докерфайл, не должно кешить, я начал передавать пароли и логины (для пробы) из компоуза в докерфайл, но он всё равно кешит((
Bohdan
ну там примитивный вариант - делать каждый раз что-то вроде RUN tail /dev/urandom > random.txt перед шагом со сборкой должно по идее сработать
Bohdan
вру, tail не сработает
Bohdan
а head у меня локально сработал
Artem
а покажи докерфайл
Artem
не уверен, но попробуй сверху добавить RUN apt update
Sergey
предлагаю через ENV прокидывать в докер имя варника, а папка с варниками будет содержать разные версии файлов, и каждая новая версия (war.1.1.39, war.1.2.1.39) будет пересобирать докер на том слое где в прошлый раз вызывался варник
Anonymous
окей, спс, попробую
neb0t
Бред какой-то - смысл варник пихать в контейнер? Лучше ложить его на волюме и при деплойменте настроить удаление-добавление варника на волюме. Будет прирост в сборке, так как контейнер не пересобирается, а просто рестартится при добавлении нового варника.
neb0t
этоже надо потом парится с подкачкой нового слоя в регистри в будудем и потом подтягивание новых изменений на сервере. Много дополнительной и ненужной работы.
Sergey
в любом случае даже если вы в том прокинете с новой версией пакета будет пересборка
neb0t
а зачем пробрасывать версию варника? Томкэту вообще все-равно что за варник лежит - он в директорию смотрит и ищет варники
Anonymous
Бред какой-то - смысл варник пихать в контейнер? Лучше ложить его на волюме и при деплойменте настроить удаление-добавление варника на волюме. Будет прирост в сборке, так как контейнер не пересобирается, а просто рестартится при добавлении нового варника.
я понимаю что кэш это ок, и в случае изменения он пересоберётся. Но сейчас я учусь работать с компоузом и собирать всё это дело вместе, то удаляю файлы из волюма то ещё что, а он закешен и считает что варник на месте. Вот как временной решение хотел чтобы он перекомпиливал заново
neb0t
Ну правильно он думаэт, по этому со скрипта деплоя нужно перезапустить докер контейнер (убить запущеный томкэт, чтобы он по новой разпаковал варник. Это просто костыльное решение. Пихать что-то в контейнер есть смысл если это должен быть самодостаточный контейнер, да и то - с бинарником готовым, а не архив, который еще потом разпаковать нужно.
neb0t
постройте 1 контейнер с томкэтом и натравливайте его на директорию с варником (директорию вынести на волюме). Таким образом если у вас 10-Н сервисов - нужно будет просто реплейз и рестарт контейнера делать, вместо полного ребилода контенера с новым варником. Реюз будет одного и того же контенера (а не 10-Н новых). Это простая оптимизация.
Sergey
в любом случае оба наши решения - костыли
neb0t
паз то другой будет для другого арр. А узнает он по вашей команде - вы пошлете команду докеру перезапустить контиейнер. Докер не хранит темповские файлы - он заново прочитает фолдер с варником и разпакует варник по новой
Sergey
можно вообще упороться, в гитлабе раннером собирать новый образ, пушить его в репу и уже деплоить в композе\кубере с новыми варниками
Sergey
кладешь вариник - тык и готово:)
Anonymous
я чутка ограничен. Заказчик хочет видеть 3 файла: докерфайл, компоуз-файл и енв для компоуза. Абсолютно все операции мол надо производить в них.
Anonymous
сиайка для этих операций - низя
Anonymous
тогда конечный результат вам показали
спасиб, ближе к обеду буду пробовать
Dm
Парни, такой вопрос. А нельзя в докерфайлы вставлять алиасы инструкций? Например я хочу при билде каждого контейнера делать одинаковые команды, но описать их в одном месте, чтобы потом просто изменить.
Ευγένιος
Можешь запускать какой-то sh файл где будут команды, подходит?
Andrey
либо базовый образ использовать
Dm
Можешь запускать какой-то sh файл где будут команды, подходит?
Не совсем. Мне нужно ложить мой корневой серт и запускать команды на обновление хранилища
Dm
Проще всего получается накопироваать
Alexandra
Привет. Такой вопрос: Я использую "storage-driver": "devicemapper" и образы по умолчанию как я понимаю лежат в /var/lib/docker/devicemapper/devicemapper может кто-нибудь ткнуть меня носом в ссылку как заставить его хранить их в другом месте?
Andrey
Привет. Кто-нибудь nginx+letsencrypt в swarm поднимал? Мне надо чтоб инстансы nginx были на всех нодах, везде есть веб-приложения. При этом как я понимаю остальные контейнеры можно держать только на менеджере. Но сходу не работает, поделитесь опытом.
Je
Привет. Кто-нибудь nginx+letsencrypt в swarm поднимал? Мне надо чтоб инстансы nginx были на всех нодах, везде есть веб-приложения. При этом как я понимаю остальные контейнеры можно держать только на менеджере. Но сходу не работает, поделитесь опытом.
Что-то все в кашу, nginx с обновлением серта это одно, архитектура вашего решения это другое, сервисы на мастер-ноде другое и не очень решение. Можно один nginx-балансер для всего, можно десяток на каждой ноде, в чем именно вопрос непонятно
Andrey
в swarm не поднимал, но похожую задачу решил по этому пособию https://blog.ssdnodes.com/blog/tutorial-extending-docker-nginx-host-multiple-websites-ssl/
Ага 👍🏼 Так я тоже делал, все ок. Но сейчас на swarm переходим, поэтому и пытаюсь мигрировать всё это дело. Пока не оч успешно...
Je
веб-сайты на воркерах и менеджерах это запредельные космические технологии, попробуй начать с декомпозиции вопроса
Boris
Сложно понять вопрос, но если я правильно его понял - проще всего поставить сертификат только на балансере
Andrey
Мне казалось все итак понятно.. ок. Есть swarm с одним менеджером и одним воркером. На каждом запущено по 1 сайту. Своего сертификата нет, их выдаёт динамически letsencrypt. Как в swarm на менеджере добавить стек nginx+letsencrypt так, чтобы оба сайта стали доступны из вне по доменам, указанным в VIRTUAL_HOST в соответствующих контейнерах сайтов? Масштабирование и балансировщик сейчас не рассматриваем.
Anonymous
Всем привет. Может кто знает, как в docker-compose.yml можно скрыть внешний ip контейнера и задать только внутренний ip (что бы к контейнеру не было доступа через docker exec -ti id bash).
Andrey
Причем здесь ip?
Andrey
Docker exec не по сети (контейнера) работает
Danila
Очевидное решение - убери bash из контейнера
Anonymous
хорошо. мне надо закрыть доступ к контейнеру из вне и создать доступ только через ssh
Anonymous
под ssh я понимаю контейнер
Anonymous
Видимо не так объяснил ) у меня есть контейнер 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
И разрешить только нужные порты
Anonymous
Скажите пожалуйста, ip для контейнера всегда надо или его генерацию можно как-то отключить?
CHIP
гитхаб? майкрософт здесь не пройдет, разве что в окно
Dan
👌
Alexander
Подскажите пожалуйста, почему из контейнера app нет доступа к контейнеру db ?
Alexander
Вот что вижу при попытке зарегистрироваться в db через app
Ismoil
php artisan config:clear
Ismoil
php artisan cache:clear
Ismoil
Попробуй
Ismoil
Потом composer update
Dmitriy
Ребят, привет! А как деплоить контейнеры в прод по человечески (best way)?
arts
kubernetes
Kirill
Ребят, привет! А как деплоить контейнеры в прод по человечески (best way)?
Зависит от масштабов. Может хватить и обычной железки с Docker'ом на борту
Dmitriy
Зависит от масштабов. Может хватить и обычной железки с Docker'ом на борту
Только только начал с docker'ом разбираться. Пока только 5 контейнеров. Думаю написать делой скриптами - из насущного нужно только перезапустить контейнер, после обновления кода в репозитории (все конфиги в compose файле лежат)
Bohdan
по ssh три команды, фактически
N
Привет всем. Можете помочь с mysql. Подключил образ mysql & phpmyadmin но при входе получаю ошибку mysqli_real_connect(): (HY000/1130): Host '172.18.0.6' is not allowed to connect to this MySQL server
Anonymous
ну дак написано же, то доступ не разрашен с ипа 172,18,0,6
Алексей
Алексей
https://github.com/docker-library/mysql/issues/275