@symfony_php

Страница 989 из 1418
Dmitriy
15.05.2018
15:18:05
А как вы решали проблему с композеровскими пакетами и сборкой докер образа?

Я к тому, что вот например лежит в репо образ уже собранный. Вы добавляете зависимость в композер json. Пересобираете образ и что, все пакеты заново качаются с инета?

Serhii
15.05.2018
15:29:12
можно подложить композеровский кеш, будет в разы быстрее

Google
Sergey
15.05.2018
15:30:47
вот так

Dmitriy
15.05.2018
15:31:00
блин, пытаюсь вкатиться в лайтовый ci-cd на докере, чето сложно)

Sergey
15.05.2018
15:31:03
можно подложить композеровский кеш, будет в разы быстрее
не можно, это создаст жирный слой либо просто неможно (нельзя волумы в билд контейнера) либо ты просто композером орудуешь вне docker build и тогда все можно но надо будет вендоры отдельно копировать и следить за инвалидацией кэша из-за autoload))

Dmitriy
15.05.2018
15:31:08
спасибо, чекну

https://github.com/fesor/project-skeleton/blob/master/docker/php/Dockerfile#L23-L26
И это получается имэйдж ребилдится с нуля каждый раз?

Sergey
15.05.2018
15:32:14
И это получается имэйдж ребилдится с нуля каждый раз?
только если изменился composer.json или composer.lock

Serhii
15.05.2018
15:32:20
А как это сделать?
писать долго, гуглится легко, в двух словах - найти папку с кешем локально и смапить ее на аналогичную в контейнере

Sergey
15.05.2018
15:32:27
ну и не с нуля а только composer instal

Sergey
15.05.2018
15:32:41
как следствие ты не можешь юзать там composer кэш. Максимум что ты можешь это копировать файлы из других образов.

Google
Serhii
15.05.2018
15:34:06
а, ньюанс - это если через docker-compose работать

Sergey
15.05.2018
15:35:49
а, ньюанс - это если через docker-compose работать
образ ты как собираешь? код ты как дистрибьютишь? у тебя приложение не вшито в образ?

Dmitriy
15.05.2018
15:36:08
как следствие ты не можешь юзать там composer кэш. Максимум что ты можешь это копировать файлы из других образов.
А как с дев-машиной? на своей тачке удобнее замаунтить исходники, нежели пересобирать образ при каждом изменении

Sergey
15.05.2018
15:36:28
и там зависимости будешь локально ставить

Dmitriy
15.05.2018
15:36:57
я просто смотрю твои docker-compose

Sergey
15.05.2018
15:37:00
либо у тебя есть вариант делать multi stage билды и отделять образ инфраструктурный и с приложением, локально будешь первый юзать

Serhii
15.05.2018
15:37:19
terraform+amazon, собирается локально, потом пушится на амазон

Sergey
15.05.2018
15:37:38
я просто смотрю твои docker-compose
https://github.com/fesor/project-skeleton/blob/master/docker/docker-compose.local.yml#L4-L7

Dmitriy
15.05.2018
15:37:49
не юзаю амазон

Sergey
15.05.2018
15:38:06
не юзаю амазон
ну я не уверен что есть разница)

Dmitriy
15.05.2018
15:38:28
у авс там какая-то своя премудрая система

Sergey
15.05.2018
15:38:32
у авс там какая-то своя премудрая система
ну не то что бы премудрая, оне не решает вопроса как код дистрибьютится

ну то есть берешь ты ECS, Fargate или чего там еще "мудрого" - примерно все одинаково у всех

разница лишь в том - вшиты у тебя вендоры и исходники приложения в docker-образ или нет. Подозреваю что у товаристча докер образ отдельно и приложение отдельно

Dmitriy
15.05.2018
15:40:25
я в их стороны даже не смотрел, поэтому не имею ни малейшего представления, как там у них) Обычно недостатка в vds нет)

Sergey
15.05.2018
15:40:34
в этом ничего плохого нет но это важный аспект, по которому можно судить имеет смысл слушать человека или нет (потому что переделывать на совершенно другой вариант дистрибьюции никто не будет просто так)) хотя доводы почему так делается я бы послушал, мне интересно)

Google
Sergey
15.05.2018
15:42:08
Dmitriy
15.05.2018
15:43:09
сейчас да. Но ум еня простая схема $ git pull origin master && docker-compose up -d && rm -rf var/cache/prod && docker-compose exec php bin/console c:w

на серваке

Dmitriy
15.05.2018
15:43:49
угу

Sergey
15.05.2018
15:44:39
сейчас да. Но ум еня простая схема $ git pull origin master && docker-compose up -d && rm -rf var/cache/prod && docker-compose exec php bin/console c:w
docker-compose build push docker-compose push $(docker-machine env prod) docker-compose pull docker-compose run --rm php bin/console doctr:mig:mig -n docker-compose up -d

не намного сложнее

поднять CI сервер который это будет выполнять - тоже вечер работы

Dmitriy
15.05.2018
15:45:00
это вообще типа микросервис с АПИ, пока не используется в полной мере. Поэтому такой себе прод

Dmitriy
15.05.2018
15:45:22
пф

ты еще тру ориджинал прода не видел) там еще хуже

я туда даже не суюсь)

Sergey
15.05.2018
15:45:52
"не ну а че я, вон они вообще говно жрут и им норм..."

Serhii
15.05.2018
15:46:12
разница лишь в том - вшиты у тебя вендоры и исходники приложения в docker-образ или нет. Подозреваю что у товаристча докер образ отдельно и приложение отдельно
не вшиты, тут может я не так понял чуток суть но собираются вендоры внутри контейнера, и потом их можно юзать с кодом дальше, но я еще работаю над усовершенствование флоу))

Sergey
15.05.2018
15:46:29
контейнер это уже поздно)

собирать контейнер на проде - это.... оч странная затея

просто вся суть докера, то из-за чего это крутая штука - это образы.

Google
Sergey
15.05.2018
15:48:08
если ты образы не пушишь никуда, если ты образы собирашеь на проде.... толку от докера...

Serhii
15.05.2018
15:48:13
собирать можно локально, можно на временно поднятой машинке скриптами, это если про амазон

Dmitriy
15.05.2018
15:48:27
да да, повторяемость окружения бит в бит

и вот это вот все)

Sergey
15.05.2018
15:49:04
собирать можно локально, можно на временно поднятой машинке скриптами, это если про амазон
еще раз, ты не можешь запихнуть что-либо в образ не запихнув это в образ. Потому либо у тебя composer cache будет внутри образа (что бессмысленно) либо ты что-то не так говоришь

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

или дорого там

Dmitriy
15.05.2018
15:51:31
"не ну а че я, вон они вообще говно жрут и им норм..."
Я к тому, что я хоть пытаюсь какую-никакую схему доставки на прод поддерживать, на риал проде это никому не нужно. Там все по старинке, хотели анзибл, но не взлетело. А там еще и в зависимостях фалкон определенной версии. Я склонировал реп, а запустить - это блять целая эпопея, докера там и в помине нет)

Andrew
15.05.2018
15:52:26
не смочь ансибл это еще постараться нужно

Sergey
15.05.2018
15:52:33
ну так сделай нормально и проведи дэмо типа "смотрите че как можно в 2k18"

не смочь ансибл это еще постараться нужно
заруинить ансибл в целом довольно легко)

Dmitriy
15.05.2018
15:53:02
ну вот я и учусь) сегодня целый день убил в гугле, пока дзена не достиг)

Serhii
15.05.2018
15:53:06
еще раз, ты не можешь запихнуть что-либо в образ не запихнув это в образ. Потому либо у тебя composer cache будет внутри образа (что бессмысленно) либо ты что-то не так говоришь
так можно в докерфайле прописать и почистить после, как остальное не нужное, например "RUN apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*" всегда выполняю в конце для очистки

Dmitriy
15.05.2018
15:53:37
не смочь ансибл это еще постараться нужно
Всмысле плейбуков понаписать не осилили. Т.е. все заглохло на стадии "а давайте анзибл!"

Sergey
15.05.2018
15:54:07
и тут твои rm уже никак и ничего не сделают и не помогут

Andrew
15.05.2018
15:55:05
Всмысле плейбуков понаписать не осилили. Т.е. все заглохло на стадии "а давайте анзибл!"
а, ну писать да, там если с нуля разбираться, достаточно крутая кривая обучения. Я обычно беру какой-нибудь https://github.com/fansible/ansible-provisioning-tywin/ и потом допиливаю, за пару часов готово

Sergey
15.05.2018
15:56:56
так можно в докерфайле прописать и почистить после, как остальное не нужное, например "RUN apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*" всегда выполняю в конце для очистки
короч если только ты не делаешь мультистэйдж билды, или вообще не билдишь через docker commit какие и т.д. то тот вариант который я скинул самый эффективный. Увы.

Google
Andrew
15.05.2018
15:57:49
удобство тут спорное, они разные задачи решают

Sergey
15.05.2018
15:58:25
хотяяя

Dmitriy
15.05.2018
15:58:51
удобство тут спорное, они разные задачи решают
в моем случае я имел ввиду. Не знаю что за важную задачу ансибл решает, я так и не нашел ей применения нигде)

Roman
15.05.2018
16:07:02
Dmitriy
15.05.2018
16:44:31
infrastructure-as-code
Концептуально это все понятно, на практике оказалось не все так гладко, да и бессмысленно когда есть докер

Sergey
15.05.2018
16:45:28
хотя не, это просто снэпшеты. сервак у тебя ж все так же по старинке создается

Dmitriy
15.05.2018
16:46:52
анзибл провизит сервер, докер тоже провизит сервер в каком то смысле

контейнер - это тот же линупс, просто изолированный

Evgen
15.05.2018
16:47:40
инфраструктура это немного шире чем просто "апп в доккере"

Dmitriy
15.05.2018
16:48:26
то, что авторы докера сказали, что 1 сервис = 1 контейнер не означает, что так и нужно делать)

Evgen
15.05.2018
16:48:27
тебе инфраструктуру надо готовить - этот как фундамент под твой докер

Dmitriy
15.05.2018
16:48:52
в последнее время все, что я делаю на голом серваке - это устанавливаю докер. И всё)

Evgen
15.05.2018
16:49:24
ну ок запихнул ты аппку в докер, а в инфрастуктуре Галлера клатер с мастер-мастер репликацией и?

сегодня ручками настроил кластер "прям на проде"

затра потерял конфиг

Dmitriy
15.05.2018
16:50:07
мне такое не нужно было

все эти кластеры)

я в комманде разрабов (где разрабов больше чем я один) работаю второй месяц

Страница 989 из 1418