개발 및 프로덕션에서 다른 Procfile 사용
Heroku를 사용하여 호스팅하려는 홈 메이드 Sinatra 애플리케이션이 있습니다.
다음 Procfile을 사용하여 개발 과정에서 포먼과 샷건을 사용합니다.
web: shotgun config.ru -s thin -o 0.0.0.0 -p $PORT -E $RACK_ENV
그것은 개발과 생산 모두에서 훌륭하게 작동합니다. 하지만 문제는 너무 느리기 때문에 프로덕션에서 샷건을 사용하고 싶지 않다는 것입니다 .
dev와 prod 모두에 대해 별도의 Procfile 구성을 사용할 수 있습니까?
두 개 Procfiles
(예 : Procfile
and Procfile.dev
)를 사용하고 foreman
s -f
옵션 을 사용하여 dev에서 사용할 다른 것을 선택할 수 있습니다.
DEV에서 ( Procfile.dev
당신이 들어 shotgun
웹 프로세스) :
foreman start -f Procfile.dev
생산 foreman start
에서 정상을 선택합니다 Procfile
.
또는 bin
적절한 웹 서버를 시작하는 스크립트를 사용하여 앱에 디렉토리를 만들 수 있습니다 $RACK_ENV
( Foreman 작성자가 작성한 주석 에서 찾은 아이디어 이므로 고려할 가치가 있음).
선택한 답변에 대한 @sharagoz의 의견은 foreman start
추가 인수를 추가하지 않고도 계속 사용할 수 있고 Heroku에 대해 Procfile을 별도로 유지할 수있는 가장 좋은 옵션 입니다.
-f Procfile.dev 매개 변수를 피하기 위해 .foreman 파일을 만들 수 있습니다
procfile: Procfile.dev
– Sharagoz
내 응용 프로그램 루트 디렉토리에서 .foreman
파일을 만들었고 주석에 나와 있습니다.
.십장
procfile: Procfile.dev
프로필
web: bundle exec puma -C config/puma.rb
Procfile.dev
web: bundle exec puma -C config/puma.rb
webpacker: ./bin/webpack-dev-server
다음은 하나의 Procfile과 환경 변수로 처리하는 방법입니다. 나는 이것을 Heroku에서 사용하고 있습니다.
환경 설정 :
export WEB_START_COMMAND='node index.js'
export WORKER_START_COMMAND='node worker.js'
Procfile :
web: eval '$WEB_START_COMMAND'
worker: eval '$WORKER_START_COMMAND'
서버 및 개발 환경에서 다른 시작 명령을 내 보냅니다.
아직도 이것을 찾는 사람들에게는 문서 에 따르면 foreman
더 이상 필요하지 않습니다. 다음을 간단히 사용할 수 있습니다.
heroku local -f Procfile.dev
참고 URL : https://stackoverflow.com/questions/11592798/use-different-procfile-in-development-and-production
'Development Tip' 카테고리의 다른 글
Redis는 반복하지 않고 팝하지 않고 목록의 모든 값을 가져옵니다. (0) | 2020.12.10 |
---|---|
UIButton 이벤트. (0) | 2020.12.10 |
Passport로 Supertest 요청을 인증하는 방법은 무엇입니까? (0) | 2020.12.10 |
표의 첫 번째 열 스타일을 다르게 지정 (0) | 2020.12.10 |
Code :: Blocks 컴파일러에 C ++ 11 지원을 추가하려면 어떻게해야합니까? (0) | 2020.12.10 |