2.8.6. 핫 디플로이팅
핫 디플로이먼트를 사용하면 새 S2I 빌드를 생성하지 않고도 애플리케이션을 신속하게 변경하고 배포할 수 있습니다. 이 이미지에서 핫 배포를 활성화하는 방법은 애플리케이션 유형에 따라 다릅니다.
Ruby on Rails Applications
Ruby on Rails 애플리케이션의 경우 실행 중인 pod에 전달된 RAILS_ENV=development
환경 변수를 사용하여 빌드된 Rails 애플리케이션을 실행합니다. 기존 배포 구성의 경우 oc set env
명령을 사용할 수 있습니다.
$ oc set env dc/rails-app RAILS_ENV=development
기타 유형의 Ruby 애플리케이션(Sinatra, Padrino 등)
다른 유형의 Ruby 애플리케이션의 경우 실행 중인 컨테이너 내부에서 소스 코드를 변경할 때마다 서버를 다시 로드할 수 있는 gem을 사용하여 애플리케이션을 빌드해야 합니다. 해당 gems는 다음과 같습니다.
개발 모드에서 애플리케이션을 실행하려면 S2I 실행 스크립트 를 수정하여 선택한 gem에 의해 웹 서버가 시작되도록 소스 코드의 변경 사항을 확인해야 합니다.
S2I 버전의 스크립트 를 사용하여 애플리케이션 이미지를 빌드한 후 RACK_ENV=development
환경 변수를 사용하여 이미지를 실행합니다. 예를 들어 oc new-app
명령을 참조하십시오. oc set env
명령을 사용하여 기존 오브젝트의 환경 변수를 업데이트할 수 있습니다.
개발 또는 디버깅 중에만 이 옵션을 사용해야 합니다. 프로덕션 환경에서 이 옵션을 사용하도록 설정하지 않는 것이 좋습니다.
실행 중인 Pod의 소스 코드를 변경하려면 oc rsh
명령을 사용하여 컨테이너를 입력합니다.
$ oc rsh <pod_id>
실행 중인 컨테이너에 들어가면 현재 디렉터리가 /opt/app-root/src 로 설정됩니다. 여기서 소스 코드가 있습니다.