Puma поэтапный перезапуск, обслуживающий старые активы - PullRequest
0 голосов
/ 27 ноября 2018

У меня проблемы с поэтапным перезапуском на производственном сервере puma.Конфигурация рабочего сервера следующая:

Приложение Rails, работающее в док-контейнере.три других образа докера: - redis - solr - nginx (в качестве прокси) Я использую docker-compose для запуска этих контейнеров.+ внешний сервер Mysql для БД.

Когда мне нужно развернуть новый код, вот рабочий процесс:

  1. Нажмите новый код на сервер
  2. перенастроить дБ, еслинеобходимо (запустить rake db: migrate в веб-контейнере)
  3. предварительно скомпилировать ресурсы (запустить rake assets: precompile в веб-контейнере)
  4. перезапустить веб-сервер.

Вот и вся хитрость: я бы хотел перезапуска без простоев.Поэтому я попытался использовать поэтапный перезапуск puma вместо перезапуска веб-сервера.Но когда я это делаю, новый код rails развертывается, а новые ресурсы - нет (несмотря на то, что rake assets: precompile).

Кто-нибудь знает, как я могу решить эту проблему?

PS:Я знаю, что должен использовать Capistrano, snce, это то, что всплывает все время, когда я гуглю свою проблему.Но, честно говоря, я не знаю, с чего начать, и это немного страшно и обескураживает.Тем более, что я также использую эту настройку docker-compose, которая довольно сложна.

Вот содержимое docker-compose.yml

version: "2"
services:
  web:
    build: .
    command: bash -c "rails server -e production -p 3000 -b '0.0.0.0'"
    volumes:
      - .:/app
    ports:
      - "3000:3000"
      - "9292:9292"
    links:
     - solr:solr
     - redis
    depends_on:
      - solr
    env_file:
      - .env
    entrypoint:
      - /app/docker-entrypoint.sh
    network_mode: bridge
    restart: always
  solr:
    image: solr
    ports:
     - "8983:8983"
    volumes:
      - data:/opt/solr/server/solr/mycores
    entrypoint:
      - docker-entrypoint.sh
      - solr-precreate
      - qwerteach
    network_mode: bridge
    restart: always
      redis:
        image: redis:latest
        ports:
          - "6379"
        network_mode: bridge
        restart: always
  proxy:
    image: nginx:alpine
    expose :
     - "80"
    volumes:
     - ./proxy/qwprodpuma.conf:/etc/nginx/conf.d/qwprod.conf #- ./proxy/qwprod.conf:/etc/nginx/conf.d/qwprod.conf
    links:
     - web
    environment:
     - VIRTUAL_HOST=qwerteach.com, www.qwerteach.com
     - LETSENCRYPT_HOST=qwerteach.com, www.qwerteach.com
     - LETSENCRYPT_EMAIL=simon@hoggart.eu
     - VIRTUAL_PORT=80
    network_mode: bridge
    restart: always

volumes:
  data:
...