Sign in to follow this  
support

Как выглядит процесс развёртывания (deploy) приложения на сервере с помощью cezerin + docker!

Recommended Posts

support

В cezerin2 можно полностью работать в docker окружении и не надо вручную настраивать на сервере окружение, т.е. не надо устанавливать, настраивать веб-сервер, nodejs, базу данных mongodb , git и т.д.

Всё это можно запускать уже настроенным docker контейнерами.

Вот видео про установку cezerin через докер.

По умолчанию есть docker образы cezerin2 - https://github.com/Cezerin2/docker-cezerin2

Я их запускаю, к примеру на cezerin.ru, видео выше, как запускается всё это.

Через полгода, допустим, выходит новая версия cezerin или например мне надо кнопку на сайте перекрасить в красный цвет или добавить новую форму, т.е. надо что-то исправить на сайте, как это сделать?!

Как мне обновить сайт cezerin.ru до новой версии?!

Очень просто.

 

Заходите на сервер и пересобираете докер контейнеры.

docker-compose down

docker-compose up --build

 

Docker сам выкачает текущий код, всё это скомпилирует и запустит.

 

т.е. основной смысл запуска cezerin в виде докер контейнеров - в автоматизации.

Вам не надо отдельно выкачивать из github исходный код, компилировать, запускать его.

 

Всё это сделает docker автоматически.

 

Если Вы делаете магазин клиента на базе cezerin, тогда просто на основе докер образов cezerin2 и github репозиториев:

https://github.com/cezerin2/docker-cezerin2
https://github.com/cezerin2/cezerin2
https://github.com/cezerin2/cezerin2-store
https://github.com/cezerin2/cezerin2-admin

 

Делаете свои репозитории исходного кода клиента и свои докер образы на основе cezerin2.

 

и Вы сможете легко и быстро вносить правки в магазин и развёртывать их на сервере через докер контейнеры.

Докер сам выкачаете текущий код, пересоберёт всё и запустит.

 

Share this post


Link to post
Share on other sites
DXSh

Доброе! Поставил через докер компост. работает. но с докерос только начал разбираться, поэтому вопрос как код редактировать править? как-то каталог app пробрасывать из контейнера ? ДА и у меня почему-то изображения при установке не подгрузились ... ? спасибо. 

Share this post


Link to post
Share on other sites
support
12 часов назад, DXSh сказал:

Доброе! Поставил через докер компост. работает. но с докерос только начал разбираться, поэтому вопрос как код редактировать править? как-то каталог app пробрасывать из контейнера ? ДА и у меня почему-то изображения при установке не подгрузились ... ? спасибо. 

Здравствуйте!

Всё завязано на github

т.е. если просмотреть dockerfile, то видно, что выкачиваются исходники с github, ставятся зависимости, компилируется и запускается.

т.е.разработка идёт на github и что б обновить магазин, запускаемый через докер - надо внести правки в код через github.

Вы заводите свой репозиторий и вносите туда правки, потому просто пересобираете контейнеры и перезапускаете.

Соответственно, правите свой dockerfile под Ваш репозиторий.

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

Как я понимаю, всё-таки разработкой надо заниматься не в докер окружении, а просто npm i, npm run build, npm start, внося правки в код, фиксируя их в системе контроля версия.

В докер окружении надо запускать уже магазин в интернете, докер упрощает именно развёртывание, он сам скачивает необходимый софт, код cezerin, компилирует, запускает, изолируется всё в контейнерах.

 

 

 

 

Share this post


Link to post
Share on other sites
DXSh

какая основная ветка ? 

Где прописана в докере откуда при старте он берёт файлы (с гитхаба)?  

потом необходимо поменять этот путь на свой ? или это командой изменить можно. 

я когда создал в админке новый продукт то у меня добавились фото на локальной машине вот по этому пути: /cezerin/content-on-host/images/products/5e88ee1fd16c59003ef44536

вот так создаются статические файлы на Django интерент магазин на его основе Оскар с использованием Docker-compose: 

1. Необходимо сгенерировать статические файлы 
docker exec --user=oscar -it oscar  bash -c 'cd sandbox && python3 manage.py collectstatic’

2. Копируем код из контейнера к себе на хост машину:
docker cp oscar:/app .

3. Удаляем контейнеры 
docker-compose down 

4. Добавьте в docker-compose.yml для volumes Nginx :
     volumes:
      - ./app/sandbox/public:/usr/share/nginx/html

5. Пересоздаем контейнеры 
docker-compose up -d 

Теперь вы можете менять код на хост машине и изменения будут отражаться в контейнере. 

Интересно тут как то можно создать их и прописать в файле     - ./app/cezerin/public:/usr/share/nginx/html ?

Share this post


Link to post
Share on other sites
support
33 минуты назад, DXSh сказал:

какая основная ветка ? 

Где прописана в докере откуда при старте он берёт файлы (с гитхаба)?  

потом необходимо поменять этот путь на свой ? или это командой изменить можно. 

я когда создал в админке новый продукт то у меня добавились фото на локальной машине вот по этому пути: /cezerin/content-on-host/images/products/5e88ee1fd16c59003ef44536

Вот - https://github.com/Cezerin2/docker-cezerin2

Для storefront например вот dockerfile - https://github.com/Cezerin2/docker-cezerin2/blob/master/cezerin2-store/Dockerfile

и там по коду видно, что делает докер, ставит весь необходимый софт, в том числе и cezerin, вот:

# download project
RUN mkdir -p /var/www \
    && cd /var/www \
    && wget -O cezerin2-store.zip https://github.com/cezerin2/cezerin2-store/archive/$CEZERIN_VERSION.zip \
    && unzip cezerin2-store.zip \
    && rm cezerin2-store.zip \
    && mv cezerin2-store-$CEZERIN_VERSION cezerin

$CEZERIN_VERSION вверху объявлена переменная как master

т.е. текущий код выгружает.

Можно просто номер версии выгружать.

т.е. ведёшь свой репозиторий, выпустил новую версию во вкладке Releases

и указал в докере номер версии, это что б в работающий сайт не попадал текущий master code 

 

Share this post


Link to post
Share on other sites
support
37 минут назад, DXSh сказал:

Теперь вы можете менять код на хост машине и изменения будут отражаться в контейнере. 

 

Сами образы докер тоже автоматически обновляются на hub.docker.com

Я вот например добавил - https://hub.docker.com/search?q=vamshop&type=image

т.е. при добавлении каких-то изменений на https://github.com/vamshop/vamshop-docker

На хабе сами образы автоматически обновляются так же.

А при обновлении кода cezerin, dockerfile так же выкачает сам текущий код и запустит установку и компиляцию.

Получается всё завязано на гитхаб и автообновление.

Я так понимаю это просто нужно для автоматизации, т.е. один раз развернул cezerin у себя на сайте и всё.

Дальше, что б обновить сайт, просто добавляешь правку в github и перезапускаешь контейнеры.

Нигде руками лазить не надо.

Share this post


Link to post
Share on other sites
DXSh

так не удобно работать через гитхаб, отслеживать версии да,  но не работать у себя на ПК.  Вы работаете меняете файлы смотрите изменения у себя в докере, после работы вносите изменения на гитхаб и если командой работаете, то закачиваете изменения .. а так вы закачиваете на гитхаб даже не знаете работает или нет это и какие ошибки вызвали ваши изменения... 

т.е. у вас есть каталог с файлами магазина откуда докер подтягивает их при запуске и еще этот каталог синхронизируется с гитхабом для отслеживания версии ... 

Share this post


Link to post
Share on other sites
support
3 минуты назад, DXSh сказал:

так не удобно работать через гитхаб, отслеживать версии да,  но не работать у себя на ПК.  Вы работаете меняете файлы смотрите изменения у себя в докере, после работы вносите изменения на гитхаб и если командой работаете, то закачиваете изменения .. а так вы закачиваете на гитхаб даже не знаете работает или нет это и какие ошибки вызвали ваши изменения... 

т.е. у вас есть каталог с файлами магазина откуда докер подтягивает их при запуске и еще этот каталог синхронизируется с гитхабом для отслеживания версии ... 

Конечно неудобно, в таком виде как сейчас связка docker+cezerin - для разработки не может использоваться, это именно для деплоя в инете, я так понял.

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

Не знаю, я не особо вэ том спец, надо посмотреть как это делается в современных проектах типа 

https://getsaleor.com/ 

https://www.reactioncommerce.com/

У меня пока что ubuntu где и так весь софт уже установлен, в докере смысла нет.

Но вообще, конечно докер использовать круто, если всё правильно сделано.

 

 

Share this post


Link to post
Share on other sites
DXSh

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

если получиться отпишусь. 

Share this post


Link to post
Share on other sites
support
42 минуты назад, DXSh сказал:

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

если получиться отпишусь. 

ok

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this