Procfile Syntax
Procfile 문법
- Heroku 애플리케이션은 시작시 실행할 명령어들이 명시된 Procfile을 포함하고 있다.
- Procfile에는 다양한 Process Type을 명시할 수 있으며, 그 타입들은 아래와 같다:
- 애플리케이션의 웹 서버
- 다양한 타입의 Worker Processes
- Clock과 같은, Singleton Process
- New Release 이전, 실행해야 할 Task
* Heroku Process Model (헤로쿠 프로세스 모델) (URL)
Procfile naming and location (Procfile의 이름과 위치)
- Procfile의 이름은 항상 \(\texttt{Procfile}\) 이어야 하며, 확장자는 없다.
(예를 들어, \(\texttt{Procfile.txt}\) 와 같은 이름은 허용되지 않는다.)
- Procfile은 항상 애플리케이션의 Root Directory에 위치해있어야 한다.
(다른 위치에 저장되어 있을 경우, 동작하지 않는다.)
Procfile format (Procfile 형식)
- Procfile의 내용에는 Process Type과 Process들이 수행할 Command들이 아래와 같은 형식으로 명시된다.
- <process-type>과 <command> 사이에 콜론(:)만 위치해있어야 하며, 공백은 허용되지 않는다.
<process-type>:<command>
Formatter | Description |
<process-type> | - Alphanumeric 이름으로 구성된다. - web, worker, urgentworker, clock과 같은 이름이 올 수 있다. |
<command> | - 해당 Process Type의 모든 dyno가 애플리케이션 시작시 수행할 명령어이다. - rake jobs:work와 같은 명령어들이 올 수 있다. |
Process Type (프로세스 타입)
Process Type | Description |
web | - Heroku Router로부터 외부의 HTTP Traffic을 받아 처리하는 프로세스이다. - 애플리케이션이 웹 서버를 운용하는 경우, web 프로세스를 반드시 Declare해야 한다. |
release | - Release Phase에서 실행되는 명령어를 수행할 프로세스이다. |
worker | - web과 release 타입에 속하지 않는 모든 프로세스 타입을 지칭한다. - 복잡한 애플리케이션에서 추가적인 런타임 프로세스가 요구되는 경우, 이들을 모두 worker에 할당하여 수행할 수 있다. |
* Release Phase (배포 단계) (URL)
Reference: Heroku, "The Procfile", Heroku Dev Center, 2022년 8월 18일 검색, URL.