
Evgeniy
07.08.2018
16:56:06
проблема начинается с базами данных в контейнере
и всякий кэш когда ты хранил в файлах потом перенастроил в redis
в redis збс оно в ram
но если ram не хватает и надо юзать файлы то их монтировать только в контейнер

Google

Evgeniy
07.08.2018
16:57:00
и получае теже проблемы io
поэтому приходится костылять
ну или похуй на производительность и закладываться по ресурсам

Александр
07.08.2018
16:58:48

Evgeniy
07.08.2018
16:59:05
ну пока нет проблемы зачем ее себе предумывать ?)

Artem
07.08.2018
16:59:15

Александр
07.08.2018
16:59:17

Evgeniy
07.08.2018
16:59:19
если что докупишь сервервак воткнешь ноду в куб и збс

Александр
07.08.2018
16:59:34

Evgeniy
07.08.2018
16:59:44
я для dev делаю контейнер workspace
в нем храню окружение разраба
типо composer, yarn и прочие тулзы
чтобы на хост машину их не ставить

Google

Александр
07.08.2018
17:00:24

Evgeniy
07.08.2018
17:00:25
тогда docker-compose run workspace composer install например обновит зависимости
типо да

Anton
07.08.2018
17:00:43
Какие в докере проблемы с IO

Artem
07.08.2018
17:00:47

Evgeniy
07.08.2018
17:00:47
в php-fpm контейнер только php-fpm

Anton
07.08.2018
17:00:58
Там нативно все

Evgeniy
07.08.2018
17:01:09

Александр
07.08.2018
17:01:13
Мне показалось это неудобным, так как нужно чтобы он был таким же как и php-fpm полностью для установки зависимостей всяких

Evgeniy
07.08.2018
17:01:40
зачем на проде composer или yarn ?
эти инструменты на этапе сборки нужны

Artem
07.08.2018
17:01:54
зачем?
ну типа добавил новую зависимость в композере - надо же обновить зависимости на продакшене

Evgeniy
07.08.2018
17:02:06
а потом деплоишь контейнер на прод со всеми нужными файлами

Anton
07.08.2018
17:02:26
Уже не так делают. Делают FROM composer там install потом копируют
То же самое с npm

Artem
07.08.2018
17:03:00

Anton
07.08.2018
17:03:01
FROM может быть несколько
И не надо на CI ставить композер

Evgeniy
07.08.2018
17:03:22
в докер файле это не обязательно делать

Google

Evgeniy
07.08.2018
17:03:32
у тебя есть грубо говоря папка с бэкендом

Александр
07.08.2018
17:03:34
Это multistage build?

Anton
07.08.2018
17:03:47

Evgeniy
07.08.2018
17:03:52
так ci может докер environment поднимать
и там уже будет композер
тот же workspace контейнер

Valentin
07.08.2018
17:04:18

Evgeniy
07.08.2018
17:04:24
и через docker-compose run workspace composer install —prefer-dist

Anton
07.08.2018
17:04:27
Не знаю что такое workspace контейнер

Evgeniy
07.08.2018
17:04:46

Anton
07.08.2018
17:04:53
А, ну можно и так

Evgeniy
07.08.2018
17:05:50
в workspace можно тулзы хранить для разработки

Evgeniy
07.08.2018
17:06:04
на проде composer, yarn, webpack не нужно

Anton
07.08.2018
17:06:11
Мы так тоже на деве делаем, но для прода хотелось бы просто build сделать и не париться по возможности
Но то вкусовщина

Evgeniy
07.08.2018
17:06:22
так и делай билд
а потом результат билда /dist
вносишь в контейнер фронта где nginx
from nginx
COPY /dist /var/www

Anton
07.08.2018
17:06:59
Ну я понимаю о чем ты

Google

Evgeniy
07.08.2018
17:07:07
и этот контейнер пушиш в registry
а на проде просто куб увидев новый контейнер
сам перезапустит контейнеры

Artem
07.08.2018
17:07:27
@KuvshinovEE
кстати я щас подумал, что если обновлять зависимости на продакшене при наличии нескольких контейнеров одного типа - может получиться, что на разных контейнерах будут разные зависимости :D

Evgeniy
07.08.2018
17:07:40
да можно

Anton
07.08.2018
17:07:49
Ну разные есть способы, вот multistage build можно вместо этого юзать

Evgeniy
07.08.2018
17:07:53
поэтому существуют бесшовные обновления и "шовные"
и проще всего делать шовные обновления когда табличка у нас тех обслуживание
а на этапе разработки
ты просто docker-compose run workspace npm run dev

Admin
ERROR: S client not available

Evgeniy
07.08.2018
17:10:09
который стартует webpack с hotreload и пробрасывает порт
либо в отдельный dev контейнер где висит такой процесс и в композе порт прокидываешь
ну это чисто имхо

Anton
07.08.2018
17:12:44
Кубернетес я бы мне кажется не трогал для начала
На сворме кластер попроще поднять да и тот же docker-compose юзать для деплоя можно. А потом когда придет понимание почему сворм не нравится можно и кубернетес :)

Evgeniy
07.08.2018
17:15:39
ну да это дело вкуса я по продакшену тоже не особо эксперт на контейнерах)
но для разработки очень прикольная штука
дев разработка может вестись в контейнерах например
ci может тоже на контейнерах поднимать окружение для сборки проекта, результат сборки может быть разный и этот результат потом деплоиться по нужным окружениям

Google

Evgeniy
07.08.2018
17:18:10
а деплоится это может кучей разных способов
1. контейнеры
2. сборка в архив и на фаил сервер, и разворачивание скриптами на каждом сервере и переключение(симлинками например)
3. сборка в .deb .rpm пакет и на всех серверах подключенный репозиторий и билд это залить новую версию пакета в репозиторий
каждый подход имеет свои плюсы и минусы и свои инструменты и подходы и сильно зависит от наличия или отсутствия бесшовных обновлений, всяких сине зеленых выливок и тд
это имхо возможно я ошибаюсь, был бы рад если бы подправили

Valentin
07.08.2018
17:26:58


Evgeniy
07.08.2018
17:27:30
потому что деплой сильно зависит от системы постановки задач о том что такое проект (проект это один сайт, проект это несколько сайто, проекто это фронтенд одно сайта и тд у всех по разному) от того как это разбито в системе постановки задач, а соответственно от того как ставятся задачи
далее это все зависит от жизненого цикла задачи (backlog, todo, design, dev, review, test, deploy примерные этапы у всех они разные и по разному называются) и деплой бывает на разные окружения, деплой на production окружение это релиз например, у кого то не бывает промежуточных сборок и там куча своих нюсансов.
далее сильно зависит как идет выливка, 1 релиз одна задача или 1 релиз куча задач тут тоже есть разновидности в релизе по одной задаче они выклдываются или сразу все кучей
ну далее исходя их всей этой ... надо выбирать инструменты


Valentin
07.08.2018
17:28:00
Мне надо будет наверное дефолтный сетап делать php + postgres + крон + демон и супервайзор с ним, ну и само собой установка зависимостей и прогон тестов

Evgeniy
07.08.2018
17:28:04
еще есть dev окружения и тд
но сильно все зависит от способа постановки задач и разделения на проектов
может быть mono repository
а может быть для frontend свой репозиторий для бэкенд свой

Valentin
07.08.2018
17:29:06
+ react
Да, но это у меня отдельный репозиторий, соответственно идёт как другой проект, ну и не реакт а vue)

Evgeniy
07.08.2018
17:29:08
или микросервисы на бэкенде
ну там сборка в обоих случаях одинакова
npm run build и дальше заводится шарманка webpack
но опять тулз полно но они берут какой то конкретный кейс

Valentin
07.08.2018
17:30:51
Ну если монореп с фронтом вместе то немного не понимаю - при любом коммите с изменениями только бекенда - фронт всё равно будет пересобираться?

Evgeniy
07.08.2018
17:31:08
мне кажется это меньшая из зол)

Valentin
07.08.2018
17:31:17
Или можно как то разделять, узнать затронуты ли файлы фронта?
Не круто