Development Tip

개발 및 프로덕션에서 다른 Procfile 사용

yourdevel 2020. 12. 10. 21:23
반응형

개발 및 프로덕션에서 다른 Procfile 사용


Heroku를 사용하여 호스팅하려는 홈 메이드 Sinatra 애플리케이션이 있습니다.

다음 Procfile을 사용하여 개발 과정에서 포먼과 샷건을 사용합니다.

web: shotgun config.ru -s thin -o 0.0.0.0 -p $PORT -E $RACK_ENV

그것은 개발과 생산 모두에서 훌륭하게 작동합니다. 하지만 문제는 너무 느리기 때문에 프로덕션에서 샷건을 사용하고 싶지 않다는 것입니다 .

dev와 prod 모두에 대해 별도의 Procfile 구성을 사용할 수 있습니까?


두 개 Procfiles(예 : Procfileand Procfile.dev)를 사용하고 foremans -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

반응형