Skip to main content

S2I(Source-to-Image) 방법

개요

S2I(Source-to-Image)는 소스 코드만으로 실행 가능한 컨테이너 이미지를 자동 생성하는 오픈소스 빌드 방식으로, 주로 OPENMARU COP, Red Hat OpenShift에서 사용됩니다.
기본적으로 소스 기반 방식을 사용하지만 Dockerfile 방식과 Binary 방식도 지원합니다.
장점으로는 DevOps 환경에서 개발자가 빌드 과정을 직접 제어할 수 있다는 점이 있습니다.

다운로드 받은 khan-agent-5.1.0.zip 파일을 아래이 data 디렉토리에 위치 시키면 POD의 `/deployments/data' 디렉토리 배포된다.

S2I(Source-to-Image) 이미지에 따라 /deployments/data 경로는 변경될 수 있음
프로젝트/
├── data/
│ ├── khan-agent-5.1.0.jar # 에이전트 JAR 파일
│ ├── khan-agent.conf # 에이전트 설정 파일
│ └── user-interceptor.conf # 에이전트 설정 파일(사용자 인터셉터)
└── src/
└── ... # 사용자 애플리케이션 소스 코드
S2I(Source-to-Image)를 사용하지 않아도 Dockerfile로 빌드한다면 Agent 파일을 ADD로 포함해 사용할 수 있습니다.

설정

WAS 종류별 에이전트 설정 방법 를 참고하여 설정할 수 있다.
...
spec:
...
containers:
- resources: {}
name: testapp
env:
- name: OMAPM_HOST
value: 10.20.2.9
- name: OMAPM_PORT
value: '80'
- name: JAVA_TOOL_OPTIONS
value: '-javaagent:/data/khan-agent-5.1.0.jar'
- name: JAVA_OPTS
value: '-Dtest1=1 -noverify --add-opens=java.base/...' ## 생략
- name: OMAPM_APPLICATION_NAME
value: 'testapp-${HOSTNAME:-:2}'
- name: OMAPM_INSTANCE_ID
value: 'testapp-${HOSTNAME:-:2}-${HOSTNAME:-:3}'
- name: OMAPM_TRANSACTION_TRACE_THRESHOLD
value: '500'