Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

2.2.2.4. 애플리케이션 생성 추가 수정

new-app 명령은 생성되는 애플리케이션을 빌드, 배포, 실행할 OpenShift Container Platform 오브젝트를 생성합니다. 일반적으로 이러한 오브젝트는 입력 소스 리포지토리 또는 입력 이미지에서 파생된 이름을 사용하여 현재 프로젝트에서 생성됩니다. 그러나 new-app 을 사용하면 이 동작을 수정할 수 있습니다.

new-app으로 생성되는 오브젝트 세트는 입력을 통해 전달되는 아티팩트(소스 리포지토리, 이미지 또는 템플릿)에 따라 다릅니다.

표 2.2. new-app 출력 오브젝트

개체설명

BuildConfig

명령줄에 지정된 각 소스 리포지토리에 대해 BuildConfig 가 생성됩니다. BuildConfig 는 사용할 전략, 소스 위치, 빌드 출력 위치를 지정합니다.

ImageStreams

BuildConfig 의 경우 일반적으로 두 개의 ImageStream 이 생성됩니다. 하나는 입력 이미지를 나타냅니다. 소스 빌드에서 이 이미지는 빌더 이미지입니다. Docker 빌드에서는 출처 이미지에 해당합니다. 두 번째 이미지는 출력 이미지를 나타냅니다. 컨테이너 이미지가 new-app에 입력으로 지정되면 해당 이미지에도 이미지 스트림이 생성됩니다.

DeploymentConfig

DeploymentConfig 는 빌드 출력 또는 지정된 이미지를 배포하기 위해 생성됩니다. new-app 명령은 결과 DeploymentConfig 에 포함된 컨테이너에 지정된 모든 Docker 볼륨에 대해 emptyDir 볼륨을 생성합니다.

Service

new-app 명령은 입력 이미지에서 노출된 포트를 탐지합니다. 가장 낮은 숫자의 노출된 포트를 사용하여 해당 포트를 노출하는 서비스를 생성합니다. 다른 포트를 공개하려면 new-app을 완료한 후 oc expose 명령을 사용하여 추가 서비스를 생성하기만 하면 됩니다.

기타

다른 오브젝트는 템플릿에 따라 템플릿을 인스턴스화할 때 생성될 수 있습니다.

2.2.2.4.1. 환경 변수 지정

템플릿,소스 또는 이미지에서 애플리케이션을 생성할 때 -e|--env 인수를 사용하여 런타임 시 환경 변수를 애플리케이션 컨테이너에 전달할 수 있습니다.

$ oc new-app openshift/postgresql-92-centos7 \
    -e POSTGRESQL_USER=user \
    -e POSTGRESQL_DATABASE=db \
    -e POSTGRESQL_PASSWORD=password

이 변수는 --env-file 인수를 사용하여 파일에서 읽을 수도 있습니다.

$ cat postgresql.env
POSTGRESQL_USER=user
POSTGRESQL_DATABASE=db
POSTGRESQL_PASSWORD=password
$ oc new-app openshift/postgresql-92-centos7 --env-file=postgresql.env

또한 --env-file=-을 사용하여 환경 변수를 표준 입력에 제공할 수 있습니다.

$ cat postgresql.env | oc new-app openshift/postgresql-92-centos7 --env-file=-

자세한 내용은 환경 변수 관리를 참조하십시오.

참고

new-app 처리의 일부로 생성된 모든 BuildConfig 오브젝트는 -e|--env 또는 --env-file 인수를 통해 전달되는 환경 변수로 업데이트되지 않습니다.