нꙺ
я так и делаю
Maxim
я так и делаю
а, он же на каждый билдит новый образ, вопрос чтобы сделать один образ через композе?
нꙺ
ДА!
Maxim
тоже интересно
нꙺ
сек
нꙺ
нꙺ
то, что в копируемой папке app - нет, остальное идентично
нꙺ
кроме последнего слоя, вопрос в том как этот ruby:alpine с несколькими слоями (которые для всех одинаковы) сделать, прежде чем уже с последним слоем (где код сервисов разный) билдить
нꙺ
вообще говоря, докер весьма интересная штука
докер - это когда настраиваешь деплой в десять раз дольше, чем пишешь сам код ))
нꙺ
и?
Yury
ADD Gemfile /app/Gemfile
ADD Gemfile.lock /app/Gemfile.lock
RUN bundle install --without development
ADD . /app
Yury
так лучше обычно
нꙺ
нꙺ
как мне образ в докер-композе предварительно собрать с этим отдельным докерфайлом?
Maxim
и в итоге кроме как сделать заранее docker build Dockerfile никак не решить эту задачу
нꙺ
ок
нꙺ
я попробую пару варинтов, из тех что в голове крутятся, и напишу тут, че выйдет
нꙺ
да ни в чем, собственно )
нꙺ
наверно я неправильно понял ONBUILD, ибо нигде не вижу директорию app
нꙺ
@masterdizer реквестирую хелп
бандлер при билде вот такую штуку пишет:
ERROR: "bundle install" was called with arguments ["—without", "development"]
Yury
Какая версия бандлера?
Yury
вообще хз, это кусок боевого докерфайла
Yury
должно работать
нꙺ
сорян
нꙺ
в скрипт пробрался флаг --force-rm
нꙺ
ясненько
нꙺ
все, по-моему я выгорел
нꙺ
с последним образом ruby:alpine бандлер не ставит thin
чет сегодня не мой день походу
нꙺ
thin это рубевый мини-сервер
нꙺ
но я вроде нашел в чем дело
нꙺ
RUN apk add build-base в докер-файле не хватало
нꙺ
однако, здравствуйте
нꙺ
получилось собрать билд и использовать его как базовый on-the-fly в одном единственном compose-файле
чудненько )
нꙺ
и без лишних контейнеров, конечно же
нꙺ
ruby-base:
build:
context: ./base
image: my-ruby-base-image
нꙺ
в докер-файлах остальных сервисов делаем FROM: my-ruby-base-image:latest
нꙺ
и в compose-файле сервисам ставим
depends_on:
- ruby-base
чтобы базовый собирался первым
нꙺ
чего только не придумаешь чтобы доки не читать )))
нꙺ
у меня в самом конце скриптик исполняется, который в числе прочего делает yes | docker system prune
нꙺ
грязный хак, конечно, но для моей задачи норм
Arkadiy
Добрый вечер) Подскажите пожалуйста, как сделать внутреннюю сеть между хостом и контейнерами? Нужно чтобы хост так же был полноценным участником этой сети и видел контейнеры и наоборот
Arkadiy
Внутренняя сеть между контейнерами работает, но хост получается аутсайдером
Arkadiy
Про внешнюю сеть и проброс вкурсе, но нужна именно внутренняя сеть
Alexei
macvlan
Arkadiy
ну я осознал для себя, что при порт форварде контейнер все равно остается в сети и другие контейнеры его видят
Arkadiy
ну вроде
Arkadiy
в каком плане?)
Arkadiy
-p 1234:1234 - вся настройка
Arkadiy
да
Arkadiy
я просто сам создал себе проблему, которой не было
Arkadiy
зато разобрался, как docker-machine работает)
Arkadiy
пока решал проблему
Arkadiy
ну это понятно, просто я был уверен, что после этого контейнер будет за натом хоста и перестанет быть частью сети
Arkadiy
короче все работает и это хорошо)
Arkadiy
спасибо)
Alex
Привет ребят. Не могу сообразить. Я поднял контейнер с bind сервером и примонтировал в контейнер каталог где будут конфиги. Каталог сейчас пустой, примонтировал туда, где bind по умолчанию хранит конфиги. В итоге каталог в контейнере опустел.
Как перебросить файлы из контейнера на хост после запуска контейнера?
Alex
docker-compose
volumes:
/path/config:/etc/bind/
Alex
Нужно в контейнере создать файл, чтобы он оказался на хосте. А в момент запуска контейнера, докер видит, что каталог на хосте пустой и тупо затирает содержимое каталога в контейнере...
Arkadiy
Arkadiy
Или тебе именно синхронизацию?
Alexei
volumes:
- "./app:/opt/app"
Alex
только . и ..
Alex
Не. Синхронизация работает и так. Мне нужно получить из контейнера дефолтные конфиги службы. Для этого мне приходится запускать контейнер без volumes. Забирать дефолтные конфиги на хост (например через cat).
Alex
Если примонтировать каталог с хоста, то файлы в контейнере затираются
Alex
Неужели никто не сталкивался? :)
Эмиль
делай volume)
Alex
На всякий случай
version: "3"
services:
dns:
build: ./
image: bind
#volumes:
# - ./config:/etc/bind/
ports:
- 53:53
Эмиль
прикрепи контейнер к volume - там конфиги твои и создадутся
Alex
Так файлы на хосте есть
Alex
version: "3"
services:
dns:
build: ./
image: bind
volumes:
- ./config:/etc/bind/
ports:
- 53:53
так, затираются
Эмиль
пусть хранит файлы на volume
Эмиль
volume то не затирается
Alex
Alex
Если я подключаю через volumes нужный каталог, то файлы в контейнере перезатираются файлами с хоста. В моем случае каталог на хосте пустой, что влечет к удалению всех файлов из каталога в контейнере
Эмиль
сделай чтобы хост юзал конфиги в volume. если уничтожишь контейнер - то конфиги останутся.
если тебе принципиально надо, чтобы эти конфиги были и в текущем хосте - то сделай по крону каждую секунду копировать конфиги за volume в твой текущий контейнер
Alex