Промежуточный экземпляр на Heroku



Я хотел бы иметь возможность нажать код на dev.myapp.com для тестирования, а затем к www.myapp.com для использования в производстве. Возможно ли это с Героку?

609   5  

5 ответов:

ваш интерфейс к Heroku по сути является веткой Git. Heroku gem выполняет некоторую работу через свой API, но в вашем репозитории Git это просто новая удаленная ветвь.

heroku create yourapp # production
git br -D heroku # delete the default branch

heroku create staging-yourapp # staging
git br -D heroku # delete the default branch

после того, как вы настроили несколько приложений на Heroku, вы должны иметь возможность настроить свой репозиторий Git следующим образом:

git remote add staging [email protected]:staging-yourapp.git
git push origin staging

git remote add production [email protected]:yourapp.git
git push origin production

Я обычно работаю в "рабочей" ветке и использую Github для своего мастера.

предполагая, что это так для вас, ваш рабочий процесс развертывания, вероятно, будет посмотрите что-то вроде:

git co -b working
# do some work

# push to github:
git co master
git merge working
git push

# push to staging:
git co staging
git merge master
git push origin staging

# push to production
git co production
git merge master
git push origin production

Это объясняет все, что вам нужно знать, если ваш новичок, как я:http://devcenter.heroku.com/articles/multiple-environments

ключевой частью исходного вопроса является связывание промежуточного приложения с поддоменом (dev.myapp.com) из основного приложения (www.myapp.com). это не было рассмотрено ни в одном из ответов.

Шаг 1: настройте как производственные ("myapp"), так и промежуточные ("staging-myapp") версии вашего приложения, как указано в ответе Люка Байеса

Шаг 2: в вашей системе управления доменами (например, GoDaddy):

Create a CNAME record:  dev.myapp.com 
that points to:   proxy.heroku.com

Шаг 3: Настройка Heroku для маршрутизации dev.myapp.com к постановке-myapp:

heroku domains:add dev.myapp.com --app staging-myapp

после того, как запись CNAME успеет распространиться, вы сможете запустить свое промежуточное приложение по адресу dev.myapp.com.

вы должны проверить heroku_san

Он делает довольно хорошую работу жонглирование с окружающей средой на heroku.

теперь все проще. Вот как вы это делаете...

создать приложение для каждой среды

$ heroku create myapp --remote production
$ heroku create myapp-staging --remote staging

это создаст именованные удаленные репозитории для каждого приложения, которые вы можете увидеть в .git/config.

теперь вы можете использовать -- app или --remote переключается на цель конкретного приложения:

$ heroku info --app myapp-staging
$ heroku info --remote staging

установить Rails среды

для рельсов приложений, Heroku по умолчанию "производства" окружающая среда. Если вы хотите, чтобы ваше промежуточное приложение работало в промежуточной среде,создать окружающую среду в вашем проекте и установите соответствующий RAILS_ENV и RAKE_ENV переменные среды в приложении:

$ heroku config:set RACK_ENV=staging RAILS_ENV=staging --remote staging

настройки среды

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

$ heroku config:set AWS_KEY=abc --remote staging
$ heroku config:set AWD_SECRET=123 --remote staging
...etc

это огромная боль, хотя я просто использую мой snappconfig камень и запустить

$ rake heroku:config:load[myapp-staging]

чтобы загрузить файлы конфигурации YAML моего проекта в Heroku.

развернуть

теперь вы просто нажимаете на Heroku вот так:

$ git push staging master
$ git push production master

и мигрировать вот так:

$ heroku run rake db:migrate --remote staging
$ heroku run rake db:migrate --remote production

(см. управление несколькими средами для приложения / Heroku Dev Center для получения дополнительной информации и ярлыков.)

Comments

    Ничего не найдено.