Menu Close

2.3.4. 애플리케이션 생성 수정

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

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

개체설명

BuildConfig

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

ImageStreams

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

DeploymentConfig

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

Service

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

기타

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

2.3.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 인수를 사용하여 파일에서 읽을 수도 있습니다. 다음은 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 인수로 전달되는 환경 변수를 통해 업데이트되지 않습니다.