문제

웹 서비스를 만들고 있는데 소스를 Github에 저장하고 Heroku에서 앱을 실행하고 싶습니다. 나는 지금까지 'Net의 어느 곳에서나 다루어진 정확한 시나리오를 보지 못했기 때문에 여기서 물어볼 것입니다.

다음과 같은 디렉토리 구조를 원합니다.

/project
  .git
  README <-- project readme file
  TODO.otl <-- project outline
  ... <-- other project-related stuff
  /my_rails_app
     app
     config
     ...
     README <-- rails' readme file 

위의 프로젝트는 다음과 같습니다 http://github.com/myuser/project, 및 my_rails_app는 Heroku로 푸시 해야하는 코드입니다. Rails 앱에 별도의 지점이 필요합니까, 아니면 누락 된 더 간단한 방법이 있습니까?

내 프로젝트 관련 비 레일 파일이 my_rails_app에 살 수 있다고 생각하지만 Rails Readme는 이미 그곳에 살고 있으며이를 덮어 쓰는 것은 일관되지 않은 것 같습니다. 그러나 내가 떠나면 레일 앱의 github 페이지에는 Rails ReadMe가 포함되어 있지 않습니다.

또한 ... 위에서 설명한대로 설정하고 실행 중입니다.

git push heroku

기본 프로젝트 폴더에서. 물론 Heroku는 내가 하위 폴더를 배포하고 싶다는 것을 모른다.

-----> Heroku receiving push
 !     Heroku push rejected, no Rails or Rack app detected.
도움이 되었습니까?

해결책

다음은 귀하에게 효과가 있거나 작동하지 않는 간단한 솔루션입니다.

  • Github에서 두 개의 프로젝트를 만듭니다. 하나의 프로젝트는 Rails 앱 (즉, Rails App Directory 내부의 모든 내용)이어야합니다. 다른 프로젝트는 Rails App 디렉토리 외부의 모든 것이되어야합니다.

  • Rails 앱 프로젝트를 "컨테이너"프로젝트 내에서 git-submodule로 추가하십시오.

  • 이제 Rails 앱 저장소의 리모컨으로 Heroku를 추가하여 Heroku로 밀어 넣을 수 있습니다. Heroku는 예상 디렉토리와 파일이있는 Rails 앱이기 때문에 푸시를 수락합니다.

다른 팁

Heroku 상황에 대한 솔루션 (readme 파일이 아님) :

새로운 것을 사용하는 경우 헤로쿠 세다 (처음 질문했을 때 사용할 수 없다고 생각합니다) 그러면 프로세스 (Rails 서버 프로세스와 같은) 십장. 따라서, 당신은 a를 배치 할 수 있습니다 Procfile root github 디렉토리에서 다음과 같습니다.

web:     my_rails_app/script/runserver.sh

그리고 my_rails_app/script/runserver.sh 간단 할 수 있습니다

#!/bin/sh

cd my_rails_app
bundle exec rails server -p $PORT

로컬로, 당신은 또한 호출되는 파일도 만들어야합니다 .env (처음에 참고).

PORT=3000

이 파일은 Foreman에 의해 읽히고 환경 변수를 설정하여 포트가 실행될 때 설정되도록 설정하는 데 사용됩니다. foreman start 컴퓨터에서 (Root Github 디렉토리에서, Procfile이있는 곳). Heroku 서버는 Dyno의 .env 파일을 처리합니다. 가장 큰 장점은 Dyno에서 그런 식으로 여러 프로세스를 설정할 수 있다는 것입니다!

Rails의 기본값을 덮어 씁니다 README 파일. 그것을 유지할 이유가 없습니다. 다른 프로젝트 관리 관련 물건을 넣으십시오 doc 예배 규칙서. 당신은 확실히 당신이하는 방식으로 그것을 설정하고 싶어하는 유효한 이유가 있지만, 당신은 컨벤션에 반대함으로써 스스로 두통을 일으키고있을 것입니다.

나는 그 아래에 모든 것을 추가 할 것입니다 /my_rails_app Heroku Git 저장소에. 그런 다음 Github를 리모콘으로 추가하고 그 아래에 모든 것을 추가하십시오. /project Github 저장소에. 그런 다음 Rails 응용 프로그램을 Heroku로 푸시 할 수 있습니다 ( /my_rails_app) 그리고 전체 프로젝트를 Github로 푸시하십시오 ( /project).

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