앱 배포 플랫폼은 Porter AI 엔터프라이즈에서 사용할 수 있으며, 기본 접속 주소인
app.도메인의 서브도메인을 idp.도메인으로 변경하여 대시보드에 접속할 수 있습니다.
대시보드의 또는 ⌘ + K 로 생성되는 배포 창을 통해 배포과정이 시작됩니다.
배포방식 선택
내 GitHub 저장소 배포하기
내 GitHub 저장소 배포하기
Git URL로 배포하기
Git URL로 배포하기
배포키 등록

Git 저장소 배포하기 화면에서 Git URL 탭을 선택한 후, 배포하려는 저장소의 SSH방식의 Git URL을 입력하면 자동으로 생성된 배포키(Deploy Key) 를 조회할 수 있습니다.
GitHub 뿐만 아니라 GitLab, Bitbucket 등에 반영된 비공개 저장소의 코드도 배포할 수 있도록 SSH 방식의 인증을 지원합니다. 플랫폼 별 배포키 등록은 아래를 참고해주세요
GitHub
GitHub

배포하려는 저장소의 Settings > Deploy keys 화면 우측 상단의 Add deploy key를 클릭한 후 배포 창에서 조회한 배포키 값을 입력해 키를 추가합니다.
GitLab
GitLab

배포하려는 저장소의 Settings > Repository 화면에서 Deploy keys 항목의Expand,Add new key를 클릭한 후 배포 창에서 조회한 배포키 값을 입력해 키를 추가합니다.
Bitbucket
Bitbucket

배포하려는 저장소의 Repository settings > Access keys 화면에서 Add key를 클릭한 후 배포 창에서 조회한 배포키 값을 입력해 키를 추가합니다.
언어/프레임웍 선택

배포할 저장소에 맞는 프리셋을 선택하세요.
템플릿을 선택해서 배포하기
템플릿을 선택해서 배포하기

개발한 서비스에 적합한 템플릿을 선택한 후 연동된 GitHub 저장소 선택 또는 Git URL을 입력하세요.
배포 설정과 배포
배포할 저장소와 프리셋 또는 템플릿을 선택한 후, 배포에 관한 아래의 항목을 설정하고 배포하세요.
브랜치와 서브 디렉토리
브랜치와 서브 디렉토리

저장소 선택 후 브랜치와 서브 디렉토리를 설정할 수 있는 필드가 표시됩니다. 하나의 저장소에 여러 개의 서비스를 별도의 폴더로 관리하는 경우처럼, 루트디렉토리가 아닌 하위 폴더에 배포할 서비스가 존재하는 경우 서브 디렉토리 필드에 그 경로를 입력하세요.
서브 디렉토리를 설정을 하지 않은 경우, 루트 디렉토리에서 배포가 실행됩니다.
버전
버전

프리셋의 버전을 배포할 저장소에 맞게 선택하세요.
환경 변수
환경 변수

환경 변수는 다음 방식들을 조합하여 추가할 수 있습니다:
- ENV 파일 Drag & Drop
- (+) 아이콘으로 새로운 변수를 직접 입력
- 열쇠 아이콘을 사용해 저장된 시크릿 중에서 선택
환경변수 설정 및 시크릿 관리에 관한 자세한 내용은 환경변수와 시크릿 관리 를 참고하세요.
포트 번호
포트 번호
포트번호는 소스 코드 혹은 환경변수의 설정과 일치해야 하며 정확하지 않은 포트번호를 입력하거나 공란으로 한 경우, 서비스가 정상적으로 작동하지 않을 수 있습니다.
Install, Build, Start Command
Install, Build, Start Command

서비스의 라이프사이클 명령어를 설정하세요. 각 필드에는 기본 명령어가 표시되어 있으며, 프로젝트 설정에 맞게 변경할 수 있습니다
- Install Command: 의존성 패키지 설치 명령어 (예:
npm install,pip install -r requirements.txt) - Build Command: 애플리케이션 빌드 명령어 (예:
npm run build,gradle build) - Start Command: 서비스 실행 명령어 (예:
npm start,python app.py)
필드값을 입력하지 않으면 placeholder에 표시된 기본값이 적용됩니다.
더 많은 옵션
더 많은 옵션

추가로 설정값을 입력할 수 있는 필드가 표시됩니다.
표시되는 필드는 템플릿 / 프리셋 별로 다르며, 주요 언어별 설정사항은 아래의 카드를 참고하세요.
springboot
node.js
Database
docker
성능(리소스) 설정과 배포
성능(리소스) 설정과 배포

- 리소스 유형 : 온디맨드와 스팟 리소스 중 선택
- CPU : 서비스가 사용할 vCPU 리소스의 최대값을 설정하며, ‘최소 vCPU’ 선택 시 0.1 vCPU 사용
- 메모리 : 서비스가 사용할 메모리 리소스의 최대값을 설정
- 디스크 : 데이터베이스를 배포할 경우 표시되는 필드로, 데이터베이스가 차지할 디스크의 용량 설정
- 동시실행(레플리카) : 설정한 수만큼 서비스가 수평확장되어 부하 분산 및 안정성 확보
-
배포 :
배포하기클릭
표시되는 필드는 템플릿 / 프리셋 별로 다르며, 주요 언어별 설정사항은 아래의 카드를 참고하세요.
springboot
node.js
Database
docker
로그와 터미널

서비스 카드 또는 상세페이지의 아이콘을 클릭하면, 배포/실행로그 조회 또는 터미널에 접속할 수 있습니다.
메트릭

서비스 상세페이지의 메트릭 탭에서, 서비스의 메트릭을 조회할 수 있습니다.
재배포(업데이트)

코드 수정, 리소스 변경 등 업데이트할 내역이 있는 경우, 서비스 설정화면 하단부의 배포하기 버튼을 누르면 업데이트를 반영한 새로운 배포가 진행됩니다.
롤백(복원)

서비스 상세페이지의 배포내역탭에서 이전 버전의 서비스 상태로 복원할 수 있습니다.
트러블슈팅
서브 디렉토리 미적용 (Error: Project files not found)
서브 디렉토리 미적용 (Error: Project files not found)

버전 불일치
버전 불일치

포트 번호 문제
포트 번호 문제
특정 포트에서 서비스되는 프로젝트의 경우, 배포 설정에서 포트 번호가 누락되거나 잘못 입력되면 정상적으로 실행되지 않을 수 있습니다.
특정 포트에 바인딩 되지 않는 프로젝트의 경우, 배포 설정에서 포트 번호 항목을 공란으로 두어야 합니다.
selenium, puppeteer 등의 Chrome 라이브러리 사용
selenium, puppeteer 등의 Chrome 라이브러리 사용
제공되는 템플릿은 기본 모듈 및 라이브러리가 상이합니다. Windows, Chrome 라이브러리처럼 기본으로 제공되지 않는 라이브러리를 사용하려는 경우, Dockerfile을 작성해서 배포해야 합니다.
CORS 문제
CORS 문제

오류에 대한 실행로그가 보이지 않는 경우
오류에 대한 실행로그가 보이지 않는 경우
서비스 패널의 플레이 버튼으로 재시작 후 실행로그를 확인해보세요. 어떤 로그도 표시되지 않는다면 서비스 상세 페이지의 이벤트탭에서 발생한 이벤트를 확인하여 문제를 해결해야합니다.
리소스 부족(out of memory)
리소스 부족(out of memory)

타임존
타임존

TZ라는 환경변수를 통해 타임존을 설정할 수 있으며, 여기 제시된 일람에 따라 국가 및 도시를 설정할 수 있습니다.
이외의 방법은 사용하고 있는 프레임워크의 공식문서를 참고하시기 바랍니다.
