대시보드의 또는 ⌘ + K
로 생성되는 배포창을 통해 배포과정이 시작됩니다.
ale
에서 제공하는 템플릿은 기본 모듈 및 라이브러리가 상이합니다. Windows, Chrome 라이브러리처럼 기본으로 제공되지 않는 라이브러리를 사용하려는 경우, Dockerfile을 작성해서 배포해야 합니다.내 GitHub 저장소 배포하기
Git URL로 배포하기
Git 저장소 배포하기 화면에서 Git URL 탭을 선택한 후, 배포하려는 저장소의 SSH방식의 Git URL을 입력하면 자동으로 생성된 배포키(Deploy Key) 를 조회할 수 있습니다.
ale
은 GitHub 뿐만 아니라 GitLab, Bitbucket 등에 반영된 비공개 저장소의 코드도 배포할 수 있도록 SSH 방식의 인증을 지원합니다. 플랫폼 별 배포키 등록은 아래를 참고해주세요GitHub
배포하려는 저장소의 Settings > Deploy keys 화면 우측 상단의Add deploy key
를 클릭한 후ale
에서 조회한 배포키 값을 입력해 키를 추가합니다.
GitLab
배포하려는 저장소의 Settings > Repository 화면에서 Deploy keys 항목의Expand
,Add new key
를 클릭한 후ale
에서 조회한 배포키 값을 입력해 키를 추가합니다.
Bitbucket
배포하려는 저장소의 Repository settings > Access keys 화면에서Add key
를 클릭한 후ale
에서 조회한 배포키 값을 입력해 키를 추가합니다.
배포할 저장소에 맞는 프리셋을 선택하세요.
템플릿을 선택해서 배포하기
개발한 서비스에 적합한 템플릿을 선택한 후 연동된 GitHub 저장소 선택 또는 Git URL을 입력하세요.
배포할 저장소와 프리셋 또는 템플릿을 선택한 후, 배포에 관한 아래의 항목을 설정하고 배포하세요.
브랜치와 서브 디렉토리
저장소 선택 후 브랜치와 서브 디렉토리를 설정할 수 있는 필드가 표시됩니다. 하나의 저장소에 여러 개의 서비스를 별도의 폴더로 관리하는 경우처럼, 루트디렉토리가 아닌 하위 폴더에 배포할 서비스가 존재하는 경우 서브 디렉토리 필드에 그 경로를 입력하세요.
버전
프리셋의 버전을 배포할 저장소에 맞게 선택하세요.
환경 변수
환경 변수는 다음 방식들을 조합하여 추가할 수 있습니다:
포트 번호
포트번호는 소스 코드 혹은 환경변수의 설정과 일치해야 하며 정확하지 않은 포트번호를 입력하거나 공란으로 한 경우, 서비스가 정상적으로 작동하지 않을 수 있습니다.
Install, Build, Start Command
서비스의 라이프사이클 명령어를 설정하세요. 각 필드에는 기본 명령어가 표시되어 있으며, 프로젝트 설정에 맞게 변경할 수 있습니다
npm install
, pip install -r requirements.txt
)npm run build
, gradle build
)npm start
, python app.py
)더 많은 옵션
추가로 설정값을 입력할 수 있는 필드가 표시됩니다.
성능(리소스) 설정과 배포
배포하기
클릭
서비스 카드 또는 상세페이지의 아이콘을 클릭하면, 배포/실행로그 조회 또는 터미널에 접속할 수 있습니다.
서비스 상세페이지의 메트릭 탭에서, 서비스의 메트릭을 조회할 수 있습니다.
코드 수정, 리소스 변경 등 업데이트할 내역이 있는 경우, 서비스 설정화면 하단부의 배포하기
버튼을 누르면 업데이트를 반영한 새로운 배포가 진행됩니다.
서비스 상세페이지의 배포내역탭에서 이전 버전의 서비스 상태로 복원할 수 있습니다.
서브 디렉토리 미적용 (Error: Project files not found)
배포 시 루트 디렉토리를 기준으로 빌드가 진행됩니다. 저장소의 루트 디렉토리가 아닌 서브 디렉토리에 실행할 소스가 있는 경우 별도로 서브 디렉토리를 지정해주어야 합니다.
버전 불일치
배포할 프로젝트를 개발할 때 적용한 JDK, Python, Node.js 등의 버전과 ale
의 배포 설정에 적용한 버전이 서로 다를 경우 서비스가 정상적으로 빌드 혹은 실행되지 않습니다.
프로젝트의 언어/플랫폼 버전에 따라 배포 설정의 버전을 알맞게 설정한 후 재배포하세요.
포트 번호 문제
selenium, puppeteer 등의 Chrome 라이브러리 사용
ale
에서 제공하는 템플릿은 기본 모듈 및 라이브러리가 상이합니다. Windows, Chrome 라이브러리처럼 기본으로 제공되지 않는 라이브러리를 사용하려는 경우, Dockerfile을 작성해서 배포해야 합니다.CORS 문제
CORS는 각 프레임워크 별로 그 해결방법이 상이하며, 각 프레임워크에서 지원하는 라이브러리 혹은 모듈을 활용하여 발생하는 이슈를 해결할 수 있습니다.
Next.js 등과 같이 자체적으로 리버스 프록시를 지원하는 프레임워크를 사용하면 내장된 Rewrites 기능으로 해결할 수 있으며, Reat, Vue와 같은 프론트엔드를 배포할 때에는 ale
의 Rewrites 설정을 통해 리버스 프록시를 적용할 수 있습니다.
오류에 대한 실행로그가 보이지 않는 경우
리소스 부족(out of memory)
타임존
TZ
라는 환경변수를 통해 타임존을 설정할 수 있으며, 여기 제시된 일람에 따라 국가 및 도시를 설정할 수 있습니다.
이외의 방법은 사용하고 있는 프레임워크의 공식문서를 참고하시기 바랍니다.