2.9.2. 이미지에서 Scripts embedded 호출


일반적으로 빌더 이미지는 가장 일반적인 사용 사례를 포함하는 자체 버전의 S2I 스크립트를 제공합니다. 이러한 스크립트가 요구 사항을 충족하지 않으면 S2I는 .s2i/bin 디렉터리에 사용자 지정 항목을 추가하여 덮어쓰는 방법을 제공합니다. 그러나 이렇게 하면 표준 스크립트를 완전히 교체할 수 있습니다. 경우에 따라 이 방법이 허용되지만 다른 시나리오에서는 이미지에 제공된 스크립트의 논리를 유지하면서 스크립트 이전에(또는 이후) 몇 가지 명령을 실행하는 것을 선호할 수 있습니다. 이 경우 사용자 정의 논리를 실행하고 이미지의 기본 스크립트로 추가 작업을 위임하는 래퍼 스크립트를 생성할 수 있습니다.

빌더 이미지 내부의 스크립트 위치를 확인하려면 io.openshift.s2i.scripts-url 레이블의 값을 확인합니다. docker inspect 를 사용하십시오:

$ docker inspect --format='{{ index .Config.Labels "io.openshift.s2i.scripts-url" }}' openshift/wildfly-100-centos7
image:///usr/libexec/s2i

openshift/wildfly-100-centos7 빌더 이미지를 검사하고 스크립트가 /usr/libexec/s2i 디렉터리에 있음을 확인합니다.

이 지식을 사용하여 호출을 래핑하여 자체 스크립트를 모두 호출합니다.

예 2.1. .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 를 사용하면 기본 이미지 실행 스크립트를 호출한 후 추가 명령을 실행할 수 없습니다.

예 2.2. .s2i/bin/run script

#!/bin/bash
echo "Before running application"
exec /usr/libexec/s2i/run
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.