Maxim
30.12.2018
21:39:31
Наверное я ленивый и невнимательно читал древнюю документацию
Nikita
30.12.2018
21:40:38
Konstantin
30.12.2018
21:41:32
Nikita
30.12.2018
21:43:19
Google
Maxim
30.12.2018
21:44:48
Konstantin
30.12.2018
21:45:43
Nikita
30.12.2018
21:45:56
не редачил
Konstantin
30.12.2018
21:46:27
Как вариант выше или внутри через source
Александр
30.12.2018
21:47:30
Build args?
Nikita
30.12.2018
21:49:53
Konstantin
30.12.2018
21:50:45
Оло, скорая? ?
Nikita
30.12.2018
21:51:18
не совсем сказал бы что для билда
George
30.12.2018
21:51:55
Пока обсуждаем, извините, какую-то хрень
Google
Konstantin
30.12.2018
21:52:27
George
30.12.2018
21:52:29
Ни у кого проблем со сборкой джангы не возникает
Maxim
30.12.2018
21:52:40
George
30.12.2018
21:52:43
и в колбасу 300 переменных?
Ну, блин, сделай херь на баше, которая берет env и разворачивает в команду. Массивы осилишь ? Но это как крайняя мера
Александр
30.12.2018
21:53:30
По-моему, это не аргументы билда, а конфиг для сборки приложения. Его разве нельзя в файл положить?
Nikita
30.12.2018
21:53:52
Давайте конкретный кейс
вообщем, приложение мультистейдж билдом в нгикс хочу вытянуть статику —> python manage.py collectstatic --noinput
https://docs.djangoproject.com/en/1.9/howto/static-files/
для этого нужно передать при запуске ему енв файл чтобы питончик прогнался и отдал все из себя статик
вот так гуд?
George
30.12.2018
21:54:07
Georgiy
30.12.2018
21:54:33
то есть модульное ПО для вас это то что требует доработки ?
George
30.12.2018
21:54:38
Nikita
30.12.2018
21:55:31
ну как бы для этого он же и предназначен
George
30.12.2018
21:56:31
Nikita
30.12.2018
21:57:07
поподробней пожалуйста
George
30.12.2018
21:58:06
Ну, по существу вопроса. Если я правильно понял. Засунь все env'ы в файл в каталоге проекта, а в Dockerfile COPY его во временную папку и сделай ему source (команда для подсасывания переменных окружения из файла)
Nikita
30.12.2018
21:58:54
George
30.12.2018
21:58:56
поподробней пожалуйста
У тебя статические файлы == промежуточный артефакт. Логично разбить сборку на несколько стадий: сборка статики, сборка nginx, сборка uwsgi
Nikita
30.12.2018
21:59:23
это не нравиться
George
30.12.2018
21:59:56
Named volume == удобно для разработки, не для деплоя в продакшн
Google
Nikita
30.12.2018
22:00:33
неа, сейчас обьясню, статика высасывается при старте приложухи и маутиться к нгиксу ?
George
30.12.2018
22:02:19
Ещё раз - кейс пока не точно описан. Но вариант с source имеет право на жизнь
Konstantin
30.12.2018
22:02:24
Nikita
30.12.2018
22:03:56
George
30.12.2018
22:08:06
Проблема только в передаче параметров коллектору статики ?
Nikita
30.12.2018
22:08:12
George
30.12.2018
22:08:30
ага
Пример переменных аргументов есть ?
Я просто уверен, что фактически аргументы всегда одни и те же
Nikita
30.12.2018
22:09:20
Пример переменных аргументов есть ?
ну вообщем у него такая особенность что он должен полностю прогнать питоновский код со своими всеми переменными которые находяться в енв файле
George
30.12.2018
22:09:59
Хорошо. Сейчас как это реализуется?
Каким образом файл с настройками подцепляется ?
Nikita
30.12.2018
22:10:41
George
30.12.2018
22:11:58
Сурси тогда )
Nikita
30.12.2018
22:12:21
George
30.12.2018
22:13:38
Самое красивое решение
Google
George
30.12.2018
22:14:02
Ты строишь пайплайн через гитлаб си, в котором у тебя есть промежуточная стадия, которая собирает статику
Тогда по сути нет проблем с пробросом env
Мы так и сделали для части проектов. Насобирали всякие golang-builder, maven-builder. На входе - вольюм с исходниками. На выходе - вольюм с артефактами сборки и
И они уже передаются на следующую стадию, где им можно, например, просто COPY в целевой образ сделать
Nikita
30.12.2018
22:16:30
у нас дженкинс пайплайны, но не суть, типа первый стейдж просто в пайплайне подымать контейнер
George
30.12.2018
22:17:10
Nikita
30.12.2018
22:17:29
а разве это ок в пайплайнах подымать контейнеры?
не замедлит время билдов?
George
30.12.2018
22:19:48
Если я правильно помню Дженкинс, то он выполняется в контексте шелла на агенте. Т.е. никто не мешает туда установить все необходимые пайтоновские модули и собирать статику без контейнера, но вопрос загаживания среды выполнения на агенте Дженкинса
И обновления среды, в случае, если пайтоновские модули обновились
Контейнеры в себя это все инкапсулируют, поэтому сборки всегда будут "чистые"
Nikita
30.12.2018
22:22:53
субьективно
ой ну и боль
George
30.12.2018
22:40:51
Ага, только один нюанс. Тебе нужно все выполнять в одном шелле
Google
George
30.12.2018
22:41:01
Каждый новый RUN == новый шелл
Nikita
30.12.2018
22:45:14
George
30.12.2018
22:45:56
Потому что у тебя сурснулось только во вложенном баше
Придется так
RUN /bin/bash -c 'source ./envfile && python blablabla’
Nikita
30.12.2018
22:49:22
George
30.12.2018
22:50:21
Я по-другому написал
Nikita
30.12.2018
22:53:38
George
30.12.2018
22:54:26
Засунь в docker-static.sh
Короче, задача конечная и это самое главное
Nikita
30.12.2018
23:26:51
с соурс не ловил
George
30.12.2018
23:27:17
Формат может не совпал
Ты же не написал в каком виде у тебя env file
Их есть как минимум несколько типов
Nikita
30.12.2018
23:27:50
SOME_SHIT=ANOTHER_SHIT
вот так
George
30.12.2018
23:28:38
https://stackoverflow.com/a/30969768/698689
Ещё на это обрати внимание
Nikita
30.12.2018
23:36:11