
Konstantin
29.05.2017
13:47:54
Исходники одни для всех сервисов?

Egor
29.05.2017
13:48:23
то, что в копируемой папке app - нет, остальное идентично

Konstantin
29.05.2017
13:49:25
Ну так значит образы разные будут же
Делай свой бэйз

Google

Egor
29.05.2017
13:50:51
кроме последнего слоя, вопрос в том как этот ruby:alpine с несколькими слоями (которые для всех одинаковы) сделать, прежде чем уже с последним слоем (где код сервисов разный) билдить
вообще говоря, докер весьма интересная штука
докер - это когда настраиваешь деплой в десять раз дольше, чем пишешь сам код ))

Konstantin
29.05.2017
13:51:50
Это когда только знакомишься

Egor
29.05.2017
13:52:23
и?

Konstantin
29.05.2017
13:52:29
Можно ещё on-build сделать

Yury
29.05.2017
13:52:37
ADD Gemfile /app/Gemfile
ADD Gemfile.lock /app/Gemfile.lock
RUN bundle install --without development
ADD . /app
так лучше обычно

Egor
29.05.2017
13:53:09
как мне образ в докер-композе предварительно собрать с этим отдельным докерфайлом?

Maxim
29.05.2017
13:53:49
и в итоге кроме как сделать заранее docker build Dockerfile никак не решить эту задачу

Egor
29.05.2017
13:54:09
ок
я попробую пару варинтов, из тех что в голове крутятся, и напишу тут, че выйдет

Google

Konstantin
29.05.2017
14:04:08
build-task:
build:
context: .
dockerfile: Dockerfile-base
image: my-base:{$TAG:-latest}
command: /bin/true
хотя я хз в чём проблема собрать его отдельно)

Egor
29.05.2017
14:08:26
да ни в чем, собственно )

Konstantin
29.05.2017
14:08:50
сделай один раз свой бэйз, положи на docker.io и задай триггер на его бэйз
будет сам там обновлятся
да ни в чем, собственно )
FROM ruby:alpine
ONBUILD ADD Gemfile /app/Gemfile
ONBUILD ADD Gemfile.lock /app/Gemfile.lock
ONBUILD RUN bundle install —without development
ONBUILD ADD . /app
такое себе сделай
https://github.com/docker-library/ruby/blob/752c5f7cf44870ceae77134b346d20093053c370/2.4/onbuild/Dockerfile
за тебя всё сделали )))
>RUN mkdir -p /usr/src/app
вот только это лишнее

Egor
29.05.2017
14:53:00
наверно я неправильно понял ONBUILD, ибо нигде не вижу директорию app
@masterdizer реквестирую хелп
бандлер при билде вот такую штуку пишет:
ERROR: "bundle install" was called with arguments ["—without", "development"]

Yury
29.05.2017
15:04:01
Какая версия бандлера?
вообще хз, это кусок боевого докерфайла
должно работать

Egor
29.05.2017
15:05:40
сорян
в скрипт пробрался флаг --force-rm

Konstantin
29.05.2017
15:08:12
наверно я неправильно понял ONBUILD, ибо нигде не вижу директорию app
ONBUILD
Инструкция ONBUILD добавляет триггеры в образы. Триггер исполняется, когда образ используется как базовый для другого образа, например, когда исходный код, нужный для образа еще не доступен, но требует для работы конкретного окружения.
ONBUILD ADD . /app/src
ONBUILD RUN cd /app/src && make

Egor
29.05.2017
15:09:03
ясненько

Konstantin
29.05.2017
15:09:33
т.е. чтобы одно и тоже не писать несколько раз в каждом сервисе, делаешь тригер в базовом

Google

Konstantin
29.05.2017
15:10:41
только вот onbuild library/images будут убраны, свой собирай )
https://github.com/docker-library/official-images/issues/2076

Egor
29.05.2017
15:37:11
все, по-моему я выгорел
с последним образом ruby:alpine бандлер не ставит thin
чет сегодня не мой день походу

Konstantin
29.05.2017
15:41:55
я бы может и помог, но хз что такое thin

Egor
29.05.2017
15:43:32
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

Egor
29.05.2017
16:24:09
и в compose-файле сервисам ставим
depends_on:
- ruby-base
чтобы базовый собирался первым
чего только не придумаешь чтобы доки не читать )))

Konstantin
29.05.2017
16:35:19
docker ps -a |grep ruby-base

Egor
29.05.2017
16:35:58
у меня в самом конце скриптик исполняется, который в числе прочего делает yes | docker system prune
грязный хак, конечно, но для моей задачи норм

Konstantin
29.05.2017
16:36:21
да это вообще в крон можно добавить

Arkadiy
29.05.2017
16:46:15
Добрый вечер) Подскажите пожалуйста, как сделать внутреннюю сеть между хостом и контейнерами? Нужно чтобы хост так же был полноценным участником этой сети и видел контейнеры и наоборот

Google

Arkadiy
29.05.2017
16:46:33
Внутренняя сеть между контейнерами работает, но хост получается аутсайдером
Про внешнюю сеть и проброс вкурсе, но нужна именно внутренняя сеть

Konstantin
29.05.2017
17:24:03
чем Publish не хватает? какая задача, чтобы общую сеть делать, это же не виртуалки

Admin
ERROR: S client not available

Alexei
29.05.2017
18:16:13
macvlan

Arkadiy
30.05.2017
09:56:09
ну вроде

Konstantin
30.05.2017
10:26:06

Arkadiy
30.05.2017
10:27:11
в каком плане?)

Konstantin
30.05.2017
10:28:24
Это не нормальное поведение
Что-то криво настраиваешь

Arkadiy
30.05.2017
10:29:23
-p 1234:1234 - вся настройка

Konstantin
30.05.2017
10:30:52
А , т.е. другие контейнеры видят порт 1234?

Arkadiy
30.05.2017
10:31:19
да
я просто сам создал себе проблему, которой не было

Konstantin
30.05.2017
10:31:35
:)
Ты публикуешь порт, его все видят

Arkadiy
30.05.2017
10:31:55
зато разобрался, как docker-machine работает)
пока решал проблему

Konstantin
30.05.2017
10:32:26
Публикуй на 127.0.0.1

Google

Konstantin
30.05.2017
10:32:37
Только хост будет видеть

Arkadiy
30.05.2017
10:32:48
короче все работает и это хорошо)
спасибо)

Konstantin
30.05.2017
10:33:30
Он за натом, часть какой сети?

Alexey
30.05.2017
11:08:37
Привет ребят. Не могу сообразить. Я поднял контейнер с bind сервером и примонтировал в контейнер каталог где будут конфиги. Каталог сейчас пустой, примонтировал туда, где bind по умолчанию хранит конфиги. В итоге каталог в контейнере опустел.
Как перебросить файлы из контейнера на хост после запуска контейнера?

Konstantin
30.05.2017
11:22:46

Alexey
30.05.2017
11:23:17
docker-compose
volumes:
/path/config:/etc/bind/
Нужно в контейнере создать файл, чтобы он оказался на хосте. А в момент запуска контейнера, докер видит, что каталог на хосте пустой и тупо затирает содержимое каталога в контейнере...

Arkadiy
30.05.2017
11:26:22
Или тебе именно синхронизацию?

Konstantin
30.05.2017
11:27:49
dotfiles?