ФорумРазработкаУстановка и администрирование ПОDocker - Linux Containers → Docker in production

Docker in production

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 2, 2016, 8:20 п.п.

    Хочу попробовать запустить проект в режиме docker in production :)

    Буду сбрасывать полезные ссылки вдруг кто-то так же болен как и я.

    1. Советую использовать CentOS, а не Debian, так как в Debian нет поддержки cgroups и соответственно нет возможности ограничивать контейнеры в ресурсах, что на production может быть очень важно.
    2. Legacy container links
    Сапожник без сапог
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 2, 2016, 10:26 п.п., спустя 2 часа 5 минут 39 секунд

    В общем делается это просто через docker hub private repo & docker push.

    Пушишь готовый проект в репу, а на сервере с помощью docker-compose разворачиваешь структуру.

    Сапожник без сапог
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 3, 2016, 3:49 д.п., спустя 5 часов 23 минуты 19 секунд

    Короче все проще. Развернул через docker-composer на продакшене, просто отдельный docker-compose.yml заюзал.

    Статику из ассетов компилю, потом билжу имедж, пушу его на hub.docker.com, потом на сервере пулаю апдейты и ну и апаю контейнеры, дальше все происходит в контейнерах, все збс с виду :)

    Спустя 17 сек.

    ну и для сервисов конечно в отличие от dev pаюзал

    restart: always

    Спустя 69 сек.

    осталось подключить логи в папки все и дата директории, ну и ебануть для красоты logstash + kibana и подружить с жангой, чтобы в одном месте следить за всем :)

    Сапожник без сапог
  • Crank

    Сообщения: 542 Репутация: N Группа: Джедаи

    Spritz Март 3, 2016, 11:12 д.п., спустя 7 часов 22 минуты 36 секунд

    Тоже чтоли попробовать какой нить проектик перевести на докер...

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 3, 2016, 4:29 п.п., спустя 5 часов 17 минут 5 секунд

    Тоже чтоли попробовать какой нить проектик перевести на докер...

    @Crank, мне понравилось ! :)

    Сапожник без сапог
  • Crank

    Сообщения: 542 Репутация: N Группа: Джедаи

    Spritz Март 3, 2016, 4:34 п.п., спустя 5 минут 6 секунд

    @phpdude, вот скажи, какие няхи будут после перевода джангосайта под докер? Я так понимаю что в добавок надо будет перепиливать конфиг сервака.

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 3, 2016, 4:52 п.п., спустя 17 минут 24 секунды

    @phpdude, вот скажи, какие няхи будут после перевода джангосайта под докер? Я так понимаю что в добавок надо будет перепиливать конфиг сервака.

    @Crank, я тебе больше скажу - конфиги сервера почти нахуй больше не нужны )) и можно перемещать твой сайт между серверами как архив, разворачивать автоматически сколько угодно раз сколько угодно где)) и все это в 1 команду :)

    Спустя 84 сек.

    теперь у меня fabfile выглядит вот так))

    https://gist.github.com/phpdude/9bf03ce475457373102a

    # coding=utf-8
    import os
    from fabric.api import env
    from fabric.context_managers import cd
    from fabric.decorators import roles
    from fabric.operations import run, local, put
    env.roledefs['master'] = ['project@ip']
    def _production_env():
    # Speedup connection setup to server.
    env.disable_known_hosts = True
    env.key_filename = [os.path.join(os.environ['HOME'], '.ssh', 'id_rsa')]
    env.project_root = '~/app/'
    @roles('master')
    def build():
    local('docker build -f production/Dockerfile -t phpdude/project:app .')
    local('docker push phpdude/project:app')
    @roles('master')
    def deploy():
    _production_env()
    with cd(env.project_root):
    put('production/docker-compose.yml', '~/app/')
    run('docker-compose pull')
    run('docker-compose up -d')
    @roles('master')
    def clear_cache():
    _production_env()
    with cd(env.project_root):
    run('docker-compose exec --rm manage clear_cache')
    view raw fabfile.py hosted with ❤ by GitHub

    Сапожник без сапог
  • Crank

    Сообщения: 542 Репутация: N Группа: Джедаи

    Spritz Март 3, 2016, 5 п.п., спустя 8 минут 19 секунд

    @phpdude, кароч буду пробовать, я тут какраз на хетцер переползаю, так что весьма актуально

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 3, 2016, 5:06 п.п., спустя 6 минут 9 секунд

    @phpdude, кароч буду пробовать, я тут какраз на хетцер переползаю, так что весьма актуально

    @Crank, меня интересует перспектива разворачивания потом фермы контейнеров как кластера. Вот это круто для меня сейчас, ибо парсеры эти ебанутые в идеале будут работать сразу на нескольких серверах, а в таком виде это получается очень консистентно и изолировано от изменений :)

    Сапожник без сапог
  • Crank

    Сообщения: 542 Репутация: N Группа: Джедаи

    Spritz Март 3, 2016, 5:08 п.п., спустя 2 минуты 13 секунд

    @phpdude, типа он из коробки поддерживает кластеризацию?

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 3, 2016, 5:13 п.п., спустя 4 минуты 16 секунд

    @phpdude, типа он из коробки поддерживает кластеризацию?

    @Crank, не совсем, просто дохуя и больше инструментов для этого. Ну и сам проект докера сейчас щас, тоже поддерживает кластеризацию - docker swarm

    Сапожник без сапог
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 3, 2016, 8:21 п.п., спустя 3 часа 8 минут 21 секунду

    добавил пункт 1 в http://pyha.ru/forum/topic/9410.1#

    Спустя 27 сек.

    как они эт проебали непонятно )) ну в общем как то так.

    Сапожник без сапог
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 4, 2016, 2:12 п.п., спустя 17 часов 50 минут 47 секунд

    преимущество docker на продакшен в одной картинке! Вот как выглядит папка приложения :)

    Спустя 35 сек.

    больше ничего нет вообще :)

    Сапожник без сапог
  • Crank

    Сообщения: 542 Репутация: N Группа: Джедаи

    Spritz Март 4, 2016, 2:18 п.п., спустя 6 минут 3 секунды

    @phpdude, а где код?

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Март 4, 2016, 2:26 п.п., спустя 8 минут 30 секунд

    @phpdude, а где код?

    @Crank, фсе в контейнере начиная от кода, заканчивая всякими elasticsearch, nginx, database, redis и тп. Там штук 10 сервисом у меня + custom long running commands

    Спустя 11 сек.

    а вокруг чистотааааа :)

    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!