Mykyta
ну как бы для этого он же и предназначен
George
ну как бы для этого он же и предназначен
Это костыль, который не нужен, при наличии Дженкинс, гитлаб си или любого нормального процесса
Mykyta
поподробней пожалуйста
George
Ну, по существу вопроса. Если я правильно понял. Засунь все env'ы в файл в каталоге проекта, а в Dockerfile COPY его во временную папку и сделай ему source (команда для подсасывания переменных окружения из файла)
George
поподробней пожалуйста
У тебя статические файлы == промежуточный артефакт. Логично разбить сборку на несколько стадий: сборка статики, сборка nginx, сборка uwsgi
Mykyta
это не нравиться
George
Named volume == удобно для разработки, не для деплоя в продакшн
Mykyta
неа, сейчас обьясню, статика высасывается при старте приложухи и маутиться к нгиксу 🙂
Mykyta
Ну, так запеки файлы в образ с nginx
так что соурс единственно верное решение ? 🙁
George
Ещё раз - кейс пока не точно описан. Но вариант с source имеет право на жизнь
Konstantin
так что соурс единственно верное решение ? 🙁
А что не так с ним? Для этого и делалось
Mykyta
Ещё раз - кейс пока не точно описан. Но вариант с source имеет право на жизнь
сейчас кейс таков, поднимается джанга, выполняется “собиратель статики” который я указал выше и маунтиться к нгиксу, совсем не камельфо, согласитесь
Mykyta
Ещё раз - кейс пока не точно описан. Но вариант с source имеет право на жизнь
но я хочу это все дело утащить в мультистейдж в нгикс чтобы это все отдавалось при билде
George
Проблема только в передаче параметров коллектору статики ?
George
ага
Пример переменных аргументов есть ?
George
Я просто уверен, что фактически аргументы всегда одни и те же
Mykyta
Пример переменных аргументов есть ?
ну вообщем у него такая особенность что он должен полностю прогнать питоновский код со своими всеми переменными которые находяться в енв файле
George
Хорошо. Сейчас как это реализуется?
George
Каким образом файл с настройками подцепляется ?
Mykyta
Хорошо. Сейчас как это реализуется?
когда котейнер поднимается ему подсосывается этот енв файл и он выдает в вольюм статику которая маутиться к нгиксу
George
Сурси тогда )
Mykyta
Сурси тогда )
это все куб на это двигает 🙂
George
Самое красивое решение
George
Ты строишь пайплайн через гитлаб си, в котором у тебя есть промежуточная стадия, которая собирает статику
George
Тогда по сути нет проблем с пробросом env
George
Мы так и сделали для части проектов. Насобирали всякие golang-builder, maven-builder. На входе - вольюм с исходниками. На выходе - вольюм с артефактами сборки и
George
И они уже передаются на следующую стадию, где им можно, например, просто COPY в целевой образ сделать
Mykyta
у нас дженкинс пайплайны, но не суть, типа первый стейдж просто в пайплайне подымать контейнер
Mykyta
а разве это ок в пайплайнах подымать контейнеры?
Mykyta
не замедлит время билдов?
Mykyta
Ну, примерно
наоборот активно уменьшаем его )
George
не замедлит время билдов?
Не сильно. Зато плюс - чистота окружения и удобство сборки и обновления кодовой базы
George
Если я правильно помню Дженкинс, то он выполняется в контексте шелла на агенте. Т.е. никто не мешает туда установить все необходимые пайтоновские модули и собирать статику без контейнера, но вопрос загаживания среды выполнения на агенте Дженкинса
George
И обновления среды, в случае, если пайтоновские модули обновились
George
Контейнеры в себя это все инкапсулируют, поэтому сборки всегда будут "чистые"
Mykyta
субьективно
Mykyta
Сурси тогда )
RUN /bin/bash -c 'source ./envfile’
Mykyta
ой ну и боль
George
Ага, только один нюанс. Тебе нужно все выполнять в одном шелле
George
Каждый новый RUN == новый шелл
Mykyta
Каждый новый RUN == новый шелл
неа, не подхватывает
Mykyta
George
Потому что у тебя сурснулось только во вложенном баше
George
Придется так RUN /bin/bash -c 'source ./envfile && python blablabla’
Mykyta
Придется так RUN /bin/bash -c 'source ./envfile && python blablabla’
RUN /bin/bash -c 'source envfile' && \ /usr/src/app/docker-static.sh так и есть, но говорит вариаблы нету
George
Я по-другому написал
Mykyta
Я по-другому написал
и так тоже нет
George
Засунь в docker-static.sh
George
Короче, задача конечная и это самое главное
Mykyta
Короче, задача конечная и это самое главное
к слову только так поймал переменные export $(cut -d= -f1 envfile)
Mykyta
с соурс не ловил
George
Формат может не совпал
George
Ты же не написал в каком виде у тебя env file
George
Их есть как минимум несколько типов
Mykyta
SOME_SHIT=ANOTHER_SHIT
Mykyta
вот так
George
https://stackoverflow.com/a/30969768/698689
George
Ещё на это обрати внимание
Anton
/spam
Anonymous
Всем привет) Подскажите плиз! В стаке есть Postgre база данных с подключённым админером. После перезагрузки сервера все что было на сервере БД - сбросилось/удалилось. Это не критично, но хочется понять почему и как этого избежать. Насколько я понимаю, нужно монтировать папку, в которой хранятся базы данных и тд? А можно сделать как-то, чтобы все хранилось и после перезагрузки без монтирования папки?
Anonymous
Нет.
Понял) Спасибо!
George
Как только контейнер будет удален - его эфемерная фс будет удалена