12.3. S2I(Source-to-Image) 이미지 사용자 정의
S2I(Source-to-Image) 빌더 이미지에는 assemble 및 run 스크립트가 포함되어 있지만 해당 스크립트의 기본 동작은 모든 사용자에게 적합하지 않습니다. 기본 스크립트가 포함된 S2I 빌더의 동작을 사용자 지정할 수 있습니다.
12.3.1. 이미지에 포함된 스크립트 호출
빌더 이미지는 가장 일반적인 사용 사례를 포함하는 자체 버전의 S2I(Source-to-Image) 스크립트를 제공합니다. 이러한 스크립트가 요구 사항을 충족하지 않으면 S2I는 .s2i/bin
디렉터리에 사용자 지정 설정을 추가하여 덮어쓰는 방법을 제공합니다. 하지만 이렇게 하면 표준 스크립트를 완전히 교체할 수 있습니다. 스크립트 교체가 허용되는 경우도 있지만 다른 시나리오에서는 이미지에 제공된 스크립트의 논리를 유지하면서 스크립트 전 또는 후에 몇 명령을 실행할 수 있습니다. 표준 스크립트를 재사용하려면 사용자 정의 논리를 실행하고 이미지의 기본 스크립트로 추가 작업을 위임하는 래퍼 스크립트를 생성할 수 있습니다.
프로세스
io.openshift.s2i.scripts-url
레이블의 값을 보고 빌더 이미지 내부의 스크립트 위치를 확인합니다.$ podman inspect --format='{{ index .Config.Labels "io.openshift.s2i.scripts-url" }}' wildfly/wildfly-centos7
출력 예
image:///usr/libexec/s2i
wildfly/wildfly-centos7
빌더 이미지를 검사하고 스크립트가/usr/libexec/s2i
디렉터리에 있음을 확인합니다.다른 명령으로 래핑된 표준 스크립트 중 하나를 호출하는 스크립트를 생성합니다.
.s2i/bin/assemble
스크립트#!/bin/bash echo "Before assembling" /usr/libexec/s2i/assemble rc=$? if [ $rc -eq 0 ]; then echo "After successful assembling" else echo "After failed assembling" fi exit $rc
이 예에서는 메시지를 출력하고, 이미지에서 표준 assemble 스크립트를 실행하는 사용자 정의 assemble 스크립트를 보여주고 assemble 스크립트의 종료 코드에 따라 다른 메시지를 출력합니다.
중요run 스크립트를 래핑할 때
exec
를 사용하여 신호가 올바르게 처리되는지 확인해야 합니다.exec
를 사용하면 기본 이미지 실행 스크립트를 호출한 후 추가 명령을 실행할 수 없습니다..s2i/bin/run
스크립트#!/bin/bash echo "Before running application" exec /usr/libexec/s2i/run