Aion
Aion
Aion
первая - jdk
Aion
вторая - tomcat, наследующий jdk
Aion
третья - nginx
Aion
а если у тебя из этого состоит сервис, то ты формируешь один docker-compose файл в котором описываешь как эти кусочки становятся одной сущностью - сервисом
Fomalhaut
а чтобы обновить отдельную часть ты будешь обновлять сразу 2е сущности?
Сейчас (я только изучаю докер) у меня штатные образы и nginx и tomcat, а все конфиги и проложуха подключены через волумы. Запускается всё через единый docker-compose.yaml.
Они в связке, так что одновление одного выведет временно из работы другой компонент, и весь сервис в целом. Так какая разница, что одновлять, если временно будут недоступны оба?
Fomalhaut
Я пока оцениваю. Ну и стараюсь понять. 😊
Aion
так сразу с малого работаете так как требуется
Fomalhaut
Идею понял. В принципе она мне даже ближе.
Aion
чтобы потом в продакшене у вас такого не произошло
Fomalhaut
первая - jdk
А зачем отдельно ждк? Да и как, если томкат ставится сразу с ним.
Fomalhaut
Если не ошибаюсь.
Aion
собираешь образ с jdk
Aion
потом уже томпкат указав FROM jdk
Aion
потому что инструкция к установке jdk может поменяться
Aion
как и вресия jdk
Oleg
Ребят, я правильно понимаю что nginx-proxy не поодерживает разные location?
Aion
и это не должно ни каким образом аффектить на сборку образа tomcat
Andrey
А как быть с исходниками которые нужно еще собирать? Ну типо фронта на JS или бекенда которому нужен для сборки composer?
Aion
темболее jdk у вас может использоваться для других проектов
Aion
Aion
один собирает артефакт
Aion
второй его использует
Aion
после сборки контейнер сносится
Aion
нет
Aion
копируешь исходники в инструкции докерфайла
Aion
собираешь
Aion
описываешь второй контейнер и пишешь в нем, чтобы он забрал каталог с артефактом из контейнера описанного ранее
Aion
вы пропустили тот факт что я говорю о работе с одним докерфайлом
Aion
FROM nodejs:8 AS build_env
COPY ./ui /home/frontend
WORKDIR /home/frontend
#RUN yarn && yarn run build:dcb
RUN yarn && yarn run build
CMD ["bash", "-c", "yarn run server"]
FROM nginx:latest
ENV version 0.0.1
# Copy art from build-env
RUN mkdir /var/www/dist
WORKDIR /var/www/dist
COPY --from=build_env /home/frontend/dist .
COPY frontend.conf /etc/nginx/sites-enabled
CMD ["nginx", "-g", "daemon off;"]
Andrey
Aion
нет
Aion
вам надо работать с артифактами в рамках вашей CI системы
Aion
задача 1) Собрать артифакт
Aion
задача 2) протестировать артифакт
Aion
задача 3) Деплой
Aion
сначала решите- что есть ваш артифакт
Aion
в идеале артифакт в концеплции контейнеров - контейнер
Aion
в идеале - нет
Aion
для начала - возможно
Andrey
А как в идеале? Архивы?
Aion
вы должны стремиться к тому, чтобы ваш backend был образом: <proj_name>_backend:latest
Aion
и через docker-registry деплоиться на стенд
Andrey
Да, я вроде как этого и хочу. Просто не совсем понимаю что класть в этот образ кроме кода. Пыха отдельный контейнер, nginx тоже.
Aion
нет
Aion
контейнер = процесс
Aion
какой процесс выпоняет ваш код?
Aion
для java = jre
Aion
для js = вебсервер (apache2, nginx...)
Aion
для пхп = php-fpm/ новый nginx
Aion
ну вот и экврика у вас есть контейнер с php-fpm
Andrey
Вот вроде как и да, а вроде как и нет. Если у меня будет 10 сайтов, зачем плодить пыху?
Aion
потому что это 10 сервисов
Aion
модульность как соблюдать?
Aion
разные версии fpm как использовать?
Andrey
ну да. Зачем мне 10 процессов пыхи если все сайты могут работать на одной
Aion
зачем вам виртуалки и контейнеры? Когда можно все запустить на одной железке?
Sergey
зачем мне 10 процессов пыхи, если можно просто не юзать пыху
Aion
Andrey
Sergey
ыы
Aion
у пайтона есть virt-env
Aion
у java есть спринг
Aion
катай - не хочу
Andrey
у java есть спринг
А спринг чего? У нас кластер спарка, спринг тут не особо поможет)
Aion
еще раз - в идеале один процесс - один контейнер
Aion
один сайт = один процесс
Aion
а так можно и слона как мартышку на дерево втащить
Aion
но зачем?
Andrey
Да согласен в принципе. Вот и хочу понять, надо оно мне или нет. Понятно что тем же ансиблом это все можно зарешать.
Andrey
Вот смотрите, один сайт = один процесс. Но сайт состоит из фронта и бека. Которые собираются по разному и лежат в разных местах. По нормальному мне бы надо фронт монтировать напрямую в nginx, а бек в пыху. Это ок?
Aion
Aion
сервис мб