@prophp7

Страница 1073 из 1387
Sergey
13.05.2018
10:30:18
.dist это что-то типа балванки. Подразумевается что у тебя в твоем окружении будет свой parameters.yml

который будет чисто под энв

Andrey
13.05.2018
10:30:28
спасибо, но я не вижу там упоминания этого файла

Sergey
13.05.2018
10:30:28
а .dist используется как шаблон

Google
Sergey
13.05.2018
10:30:52
спасибо, но я не вижу там упоминания этого файла
а там и не надо, суть в том что это просто yaml файлик с параметрами который импортится в конфиги

ты можешь его назвать хоть env_config.yml хоть yolo.yaml

главное что бы он импортился где-то в конфигах которые точно юзаются (config.yml какой)

никакой магии

Andrey
13.05.2018
10:31:41
это я примерно понял. Также я вижу, что запуск composer install/update как-то преобразует parameters.yml.dist в parameters.yml - где можно почитать, по какому алгоритму это делается?

$iD
13.05.2018
10:32:31
https://packagist.org/packages/incenteev/composer-parameter-handler

Sergey
13.05.2018
10:32:33
и вообще, какого хрена ты делаешь composer install не на CI?)

$iD
13.05.2018
10:32:45
эта либа занимается модификацией ямла

обычно

Andrey
13.05.2018
10:33:55
и вообще, какого хрена ты делаешь composer install не на CI?)
я готовлю Dockerfile для билда от git clone до docker push (а по пути всякие symfony new и composer install)

Google
Andrey
13.05.2018
10:34:34
а потом это всё будет дёргаться через jenkins/ansible

Andrey
13.05.2018
10:36:18
вот его выкоси
мне девелоперы выдали инструкцию по сборке, в которой сначала руками правится dist, потом запускается composer. К ним идти боюсь, наору ещё за то, что они сами в своих инструментах не шарят нихера

Sergey
13.05.2018
10:36:47
с docker parameters.yml не то что не нужен - он будет сильно мешать

придется какие-то кастыли типа волумов делать

вшивать же креды в образ чет не ок

Andrey
13.05.2018
10:37:46
выкинь parameters.yml и юзай env переменные
идём к этому. Манагер решил, что проще меня заставить (сейчас) перелопатить 50 аппликух, чем заново всех разработчиков подстраивать под это

Sergey
13.05.2018
10:38:41
Andrey
13.05.2018
10:38:50
вшивать же креды в образ чет не ок
я в dist вставляю ${PARAM} в качестве величин. Потом заменяю при запуске, в образе нет ничего. Свой вариант .env

Sergey
13.05.2018
10:39:02
yaml файлики не умеют интерполировать env переменные сами по себе

Andrey
13.05.2018
10:39:25
не умеют

Sergey
13.05.2018
10:39:32
ты можешь записать там значения вида %env(PARAM)%

Andrey
13.05.2018
10:39:45
хм

это вариант

спасибо

Sergey
13.05.2018
10:39:56
https://symfony.com/blog/new-in-symfony-3-2-runtime-environment-variables

Andrey
13.05.2018
10:40:22
а не, не вариант

это значит, мне надо будет искать это в config*.yml файлах и заменять

Google
Andrey
13.05.2018
10:41:27
это задача разработчиков, мне нужен простой список параметров

но это то, к чему мы рано или поздно придём

Sergey
13.05.2018
10:43:53
временно хотя бы

но да, плетью разработчиков что бы чето делали

2018-ый год

Andrey
13.05.2018
10:46:34
проблема в том, что код даётся в виде библиотеки, потом создаётся приложение через symfony new. То есть у меня на руках файлов вообще никаких нет, всё надо динамически sed'ом и такой-то матерью делать. Ещё какие-то бандлы в AppKernel.php прописывать. Жуть, в-общем

если ещё принять во внимание, что с PHP моё общение закончилось в 2005-м ... :)

благодарю за помощь

Andrey
13.05.2018
10:51:44
кстати, доп. вопрос со звёздочкой. В PHP/symfony есть общепринятый способ делать reproducible builds? C учётом того, что приложение может зависить от сторонних библиотек, которые ставятся через composer? Ну или best practices какие-нибудь?

Sergey
13.05.2018
10:52:01
CI

Sergey
13.05.2018
10:52:16
ну то есть по поводу composer - у него есть lock файл

потому composer install будет ставить только те версии которые уже ставились

я вообще composer install делаю в Dockerfile)

Andrey
13.05.2018
10:53:18
там только версии закрепить можно. Оно ещё всякий кэш и динамический код вроде может генерить

тот же secret в параметрах

хотя да, мы же договорились, что это на этапе запуска будет

а собрать свой шаблон symfony что бы не symfony new?
наверное можно, но для меня это тёмный лес

Sergey
13.05.2018
10:55:29
Google
Andrey
13.05.2018
10:55:47
symfony new? понятно тогда

Sergey
13.05.2018
10:55:55
если у тебя все на env переменных то можно кэш в dockerfile даже делать

если нет - то при старте контейнера чистить будешь

вся кодогенерация там в целом идемпотентна, то есть если код не менялся то и кэш будет такой же (ну хэши могут отличаться)

Andrey
13.05.2018
10:56:54
у меня multi-stage сборка, в одном контейнере до composer install доводится, результат переносится в чистый контейнер на базе php

вся кодогенерация там в целом идемпотентна, то есть если код не менялся то и кэш будет такой же (ну хэши могут отличаться)
вот хотелось бы с точностью до хэша. у composer видел запрос на такую функциональность, у него сборка вставляет timestamp в архивы, соответственно контент разный всегда

Sergey
13.05.2018
10:59:04
если ты беспокоишься за кэш - делай это отдельным стэпом

тебе всеравно надо кэш чистить если что-то поменялось

Admin
ERROR: S client not available

Sergey
13.05.2018
10:59:25
за кэш докера*

Andrey
13.05.2018
11:00:04
речь про контрольную сумму файлов сборки.

расписывать зачем нужны reproducible builds думаю не надо :)

открываешь composer.json и смотришь секцию scripts
а если такой секции нет, то dist файл не используется?

Sergey
13.05.2018
11:04:53
расписывать зачем нужны reproducible builds думаю не надо :)
ну тогда чисти кэш при старте контейнера что бы он не влиял на хэши образов и как следствие артифактов билдов

ну то есть блин

кэш это кэш, либо его тебе docker cache закэшит либо у тебя что-то в коде поменялось и кэш в любом случае будет отличаться

это не то из-за чего надо заморачиваться, так как при построении кэша не используется ничего стороннего. Завязано только на текущее время разве что но это влияет только на инвалидацию кэша (которая отключены в prod окружении)

Google
Sergey
13.05.2018
11:07:46
единственный нюанс - доктрина может захотеть слазить в базу версию проверить, но это можно в конфиге указать и тогда лазить она не будет

(типа ей надо знать версию СУБД)

Andrey
13.05.2018
11:08:13
беда-беда-огорчение. Значит разраб мне в доке херню написал? Сначал пишет, что надо в parameters.dist.yaml что-то добавить, потом composer install, потом config*.yml, потом миграции, потом запуск.

Andrey
13.05.2018
11:09:00
это отдельный вопрос, но я понял, о чём ты

Sergey
13.05.2018
11:09:14
у меня деплой прмиерно так: docker-compose pull ... docker-compose run --rm bin/console doctrine:migration:migrate -n docker-compose up -d

ну или чем ты там все стартуешь

могли бы делать проще

Andrey
13.05.2018
11:10:29
у нас это в swarm, у нас нет отдельного шага, в который можно запихнуть инит/миграции. Всё это перед стартом делается в entrypoint.sh

но это не вина разработчиков, конечно

Sergey
13.05.2018
11:11:10
ну если миграции быстрые то не так страшно, у меня они по часу бывают частенько потому мне важно что бы контейнер не падал пока миграции не закончатся

Andrey
13.05.2018
11:11:21
они нам дали команды для миграции, просто мы их (пока) не отделили

миграции быстрые, да, там мелкие сервисы. И в базе у них хранятся промежуточные данные, которые можно дропнуть в любой момент

проблемно, но не критично

в идеале, хотелось бы, чтоб всей этой херней они занимались, мне разбираться в symfony/composer не совсем интересно :)

мне бы архивчик и команды для сборки/теста/инициализации/запуска

понял я, composer.json берётся не из кода библиотеки, а создаётся во время symfony new, а там есть эти скрипты обработки paramerters.dist.yml. Разраб на это и рассчитывает и в доках эти шаги и указывает..

Антон
13.05.2018
18:35:17
ну если миграции быстрые то не так страшно, у меня они по часу бывают частенько потому мне важно что бы контейнер не падал пока миграции не закончатся
Как я понял чтобы думать о DDD надо сначала вообще понять про доменные модели и уметь их использовать. А потом уже DDD.

И сеттеры и геттеры это про доменные модели

Вернее их отсутствие

Artem
13.05.2018
18:45:42
Laravel В a href написал session:flush Почему он при обновлении страницы сессию очищает А не при нажатии на ссылку?

Страница 1073 из 1387