문제

코드를 푸시 할 수 있기를 원합니다 dev.myapp.com 테스트를 위해 www.myapp.com 생산 사용을 위해. 이것은 헤로쿠에서 가능합니까?

도움이 되었습니까?

해결책

Heroku에 대한 인터페이스는 본질적으로 Git Branch입니다. 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 git@heroku.com:staging-yourapp.git
git push origin staging

git remote add production git@heroku.com: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

원래 질문의 핵심 부분은 스테이징 앱을 기본 앱 (www.myapp.com)의 하위 도메인 (dev.myapp.com)에 연결하는 것입니다. 이것은 어떤 답에도 언급되지 않았습니다.

1 단계 : Luke Bayes의 답변에 표시된대로 앱의 프로덕션 ( 'MyApp') 및 스테이징 ( 'Staging-Myapp') 버전을 구성합니다.

2 단계 : 도메인 관리 시스템 (예 : Godaddy)에서 :

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

3 단계 : Dev.myApp.com을 준비하여 Heroku를 구성하여 Staging-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.

이제 둘 중 하나를 사용할 수 있습니다 --앱 또는 --원격 특정 앱을 대상으로 전환합니다.

$ 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

(보다 앱의 여러 환경 관리 | 헤로쿠 데브 센터 자세한 정보와 바로 가기.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top