Bash + Docker Compose. Простой деплой docker приложений на простой Ubuntu сервер

Поделиться
HTML-код
  • Опубликовано: 10 апр 2021
  • Деплой проекта позволяет сделать ваше приложение видимым для вашей аудитории. Мы, в Wormsoft, перепробовали разные варианты деплоя. Для небольших проектов мы остановились на варианте простого Bash скрипта вместе с правильно настроенным docker-compose файлом.
    Более подробное описание к ролику можно прочитать в моем блоге - amorev.ru/gmoreva-1-bash-dock...
    Также прикрепляю ссылки на репозитории, про которые говорю в видео:
    github.com/gmoreva/1-bdc-inte... - пример интерфейса, который общается с публичным микросервисом.
    github.com/gmoreva/1-bdc-serv... - пример “микросервисов”, которые общаются между собой через REST и один из них открыт в паблик и доступен для интерфейса.
    github.com/gmoreva/1-bdc-prod - репозиторий с примером боевогоо docker-compose файла, bash скрипта и примером .env. Данный пример разворачивает
    Мой Telegram канал - t.me/amorev94
  • РазвлеченияРазвлечения

Комментарии • 37

  • @georgestatefield
    @georgestatefield 2 года назад +4

    Живописно!
    побольше бы таких уроков...

  • @user-zp8xz5fu2j
    @user-zp8xz5fu2j 10 месяцев назад +1

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

    • @amorev
      @amorev  10 месяцев назад

      Очень рад! Спасибо за комментарий!

  • @hs-pp3xh
    @hs-pp3xh 2 года назад +1

    Продолжай в этом духе!

  • @volatilnost
    @volatilnost 3 месяца назад +1

    Это просто мегаполезное видео. Фактически по нему и дополнительному гуглению понял как работает docker, как разворачивать приложение, и насколько это все интересно. И в итоге сделал свой петпроджект. Автору бесконечное спасибо. За 20 минут очень понятно, доступно все объяснил.

    • @amorev
      @amorev  3 месяца назад

      Прекрасно! Очень рад, что видео понравилось и оказалось полезным! Спасибо огромное за комментарий!

  • @paulmixable
    @paulmixable 2 года назад +2

    Норм схема👍 но можно улучшить.
    В docket way правильнее сначала собирать образы и только потом их деплоить. Gitlab CI + Gitlab Container registry.

    • @amorev
      @amorev  2 года назад +2

      Ну по сути мы сразу собираем и "деплоим" на тот же сервер) Оно так получается быстрее, чем сначаа залить в registry а потом оттуда пуллить. На некоторых проектах делаем именно так, чтобы сервер не грузить сборкой, а на мелких проектах отлично едет и такой вариант

  • @kyrylochornobryvets3385
    @kyrylochornobryvets3385 Год назад

    Объясни пожалуйста почему service1 и service2 висят на одинаковом порту 3001? Заранее спасибо.

    • @amorev
      @amorev  Год назад +1

      Потому что они находятся в изолированной Docker сети и не выходят за ее пределы. Я не прописываю ничего в ports блок. А общаются между собой они уже по 3001 портам (потому что открыли 3001 внутри сети через expose)

  • @evgedoo
    @evgedoo 3 года назад +1

    А не думали начать использовать ansible?

    • @amorev
      @amorev  3 года назад +1

      Не только думали) мы его используем. Но для данного видео решил пойти путем bash скрипта для настройки окружения, чтобы наглядно показать тем, кто вообще не в теме ansible. Вы - не первый, кто мне это уже написал и похоже надо будет сделать подобный видос про то, как у нас это устроено при ansible.
      Спасибо за обратную связь!

  • @whicencer8819
    @whicencer8819 5 месяцев назад

    Здравствуйте! Я новичок, наткнулся на ваше видео и мне понравилось. Но есть пара вопросов:
    1. как деплоить бота (телеграм) на сервер вместо сайта?
    2. Что делать если этих ботов может быть много, и я хочу запустить их независимо друг от друга на одном сервере?
    Спасибо!

    • @amorev
      @amorev  5 месяцев назад +1

      1. Также можно деплоить. Просто вам не нужен http порт, если вы не собираетесь работать через webhook
      2. можете таких копий через docker запускать сколько угодно много на одном сервере, пока хватает диска, памяти и процессора

  • @dd-pe5dp
    @dd-pe5dp Год назад +1

    очень интересно, жаль шо ниче не понятно

  • @arturioup8582
    @arturioup8582 2 года назад

    столкнулся с проблемой. сделал все как показано и по шпаргалке с гита все запустилось но запросы никак не проходят есть идеи что я мог сделать не так? докре пс пишет что все работает да и телеграм бот который запускаеться в контейнере отрабатывает. но я так понимаю nginx не пропускает запросы так как без проксирования запросы проходят

    • @amorev
      @amorev  2 года назад

      Вы можете написать мне в личке в Telegram - @amorevbot и я подскажу) просто по вашему сообщению подсказать вам врядли смогу)

  • @llwebstylell242
    @llwebstylell242 Год назад

    А если например в бд в ручную нужно что-то поменять , как быть ?

    • @amorev
      @amorev  Год назад +2

      ruclips.net/video/GBx3KEcuKFA/видео.html я в этом ролике показывал как я это делаю через туннели. Можно в phpstorm настроить подключение или любой другой проге, которая работает PG

    • @llwebstylell242
      @llwebstylell242 Год назад

      @@amorev там вы рассказываете про туннели, а я как раз таки спрашивал про pgadmin или phpmyadmin, про эти платформы которые администрируют субд, как с ними быть ? если их так же в контейнере запускать то они будут доступны всем, нужно закрывать тоже там доступ ко всему этому ? хотелось бы про это узнать

    • @llwebstylell242
      @llwebstylell242 Год назад

      @@amorev всё же пересмотрел пару раз видео, и если я правильно понял то благодаря туннелям я могу со своего компа запустить например тот же phpmyadmin или pgadmin и подключиться к контейнеру к субд ? я правильно понял этот момент в целом ?

    • @amorev
      @amorev  Год назад +2

      ​@@llwebstylell242 о. интересный вопрос. Ну, во-первых, на этих интерфейсах тоже есть авторизация. Плюс можно добавить basic авторизацию на уровне HTTP в nginx-reverse-proxy. Но, если честно, в бою такие решения очень очень выглядят опасно - забрутфорсят.
      Если критически важен phpmyadmin, то я бы его запустил внутри и через docker-hostmanager и ssh туннель уже подключался на него.
      Благодарю за вопрос!

    • @amorev
      @amorev  Год назад +2

      @@llwebstylell242 Вы поняли почти правильно да. Я бы сделал так - на сервере запустил phpmyadmin, но не открывал бы его порт внешнему миру. Далее через ssh туннель сделал бы проброс порта phpmyadmin (через его домен в докер сети и docker-hostmanager) и дальше уже на своем компе подключался бы следующим образом:
      1. Включил туннель со своего 8080 порта на 80 порт phpmyadmin на удаленной машине.
      2. У себя в браузере открыл бы адрес localhost:8080 и работал бы с phpmyadmin как будто он стоит локально

  • @artsbrand
    @artsbrand Год назад

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

    • @amorev
      @amorev  Год назад

      а сама база запущена на том же сервере?

  • @user-ey3yn9fw6s
    @user-ey3yn9fw6s 9 месяцев назад +7

    Если вы делаете свой первый деплой через Docker, можете не смотреть это, вы ничего не поймете.

  • @apacheMax
    @apacheMax Год назад

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

    • @amorev
      @amorev  Год назад

      хм. вообще где угодно дают хост с рутом..
      Странно вообще без рута давать хост. Даже sudo не работает?
      Так беру обычно vds.selectel.ru или hetzner

    • @apacheMax
      @apacheMax Год назад

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

    • @sergey8513
      @sergey8513 9 месяцев назад

      Может у вас был сервак с Debian?

  • @vadims2236
    @vadims2236 Год назад

    up -d не демон, а детач

    • @amorev
      @amorev  Год назад

      ага) просто он запускается в формате демона)

  • @daniil4299
    @daniil4299 3 года назад +1

    Зачем Ubuntu на сервер, если есть Debian?

    • @amorev
      @amorev  3 года назад

      Так сложилось исторически. Так то и на Debian все тоже самое можно сделать:)

    • @dd-pe5dp
      @dd-pe5dp Год назад

      убунта популярна