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