CLI를 사용하여 로컬 소스 코드에서 작업 작성
IBM Cloud® Code Engine CLI를 사용하여 로컬 워크스테이션의 소스 코드에서 직접 작업을 작성할 수 있습니다. job create 명령을 사용하여 로컬 소스에서 이미지를 빌드하고 이 빌드된 이미지를 참조하도록 작업 구성을 정의하십시오.
로컬 디렉토리에서 코드를 가져오는 빌드를 제출하면 소스 코드가 아카이브 파일로 압축됩니다. Code Engine은 계정의 IBM Cloud® Container Registry 네임스페이스에 이미지를 자동으로 업로드한 후 이 빌드된 이미지를 참조하도록 작업을 작성합니다. 로컬 빌드의 경우 IBM Cloud Container Registry만 대상으로 지정할 수 있습니다. 이 경우 작업 이름과 로컬 소스의 경로만 제공하면 됩니다. 전체
옵션 목록은 ibmcloud ce job create 명령을 참조하십시오.
이미지 레지스트리에 액세스하는 데 필요한 권한에 대한 정보는 이미지 레지스트리의 권한 설정을 참조하십시오.
.gitignore 파일과 유사하게 작동하는 .ceignore 파일을 사용하여 소스 코드 내에서 특정 파일 패턴을 무시하도록 선택할 수 있습니다. 예를 들어, node.js 애플리케이션의 .ceignore 파일에 대한 항목에는 node_modules 및 .npm이 포함될 수 있습니다. 무시할 파일 패턴에 대한 더 많은
예시는 GitHub 의.gitignore 저장소를 참조하세요.
이 경우 IBM Cloud® Container Registry가 필요합니다.
시작하기 전에
- Code Engine CLI 환경을 설정하십시오.
- 프로젝트를 작성하고 작업하십시오.
- 소스가 로컬 워크스테이션의 액세스 가능한 위치에 있어야 합니다.
이 예에서는 https://github.com/IBM/CodeEngine 샘플, 특히 helloworld 샘플을 사용합니다.
-
다음 명령을 사용하여
https://github.com/IBM/CodeEngine샘플 소스를 로컬 워크스테이션으로 다운로드하십시오.git clone https://github.com/IBM/CodeEngine -
CodeEngine\helloworld디렉토리로 변경하십시오. -
CodeEngine\helloworld디렉토리에서 로컬 워크스테이션의CodeEngine\helloworld소스에서 빌드된 이미지를 사용하는myjob-local작업을 작성하십시오. 이 명령은 자동으로 이미지를 빌드한 후 계정의 IBM Cloud Container Registry 네임스페이스로 푸시합니다. 기존 Container Registry 네임스페이스가 없는 경우 Code Engine에서 자동으로 작성합니다.--wait옵션을 추가하면 이미지 빌드가 완료될 때까지 작업 작성을 대기하도록 지정합니다.ibmcloud ce job create --name myjob-local --build-source . --wait.은 빌드 소스가 현재 작업 중인 디렉토리에 있음을 나타냅니다.출력 예
Creating job 'myjob-local'... Packaging files to upload from source path '.'... Submitting build run 'myjob-local-run-220420-150457582'... Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myjob-local-run-220420-150457582' to check the build run status. OK--wait옵션을 지정했기 때문에,job create명령어의 출력에는 작업이 생성되기 전 빌드 실행의 진행 상황에 대한 정보가 제공됩니다.이 예에서는 빌드된 이미지가 Container Registry의
ce--abcde-glxo4kabcde네임스페이스에 업로드됩니다.다음 표에는 이 예에서
job create명령과 함께 사용되는 옵션이 요약되어 있습니다. 명령 및 해당 옵션에 대한 자세한 정보는ibmcloud ce job create명령을 참조하십시오.명령 설명 옵션 설명 --name작업 이름입니다. 프로젝트 내에서 고유한 이름을 사용하십시오. 이 값은 필수입니다.
- 이름은 소문자 영숫자로 시작하고 끝나야 합니다.
- 이름은 63자 이하여야 하며 문자, 숫자 및 하이픈(-)을 포함할 수 있습니다.
--build-source로컬 소스의 경로입니다. --wait작업을 작성하기 전에 이미지 빌드가 완료될 때까지 대기하도록 지정합니다. -
(선택사항)
job get명령을 사용하여 빌드 정보를 포함하여 작업에 대한 정보를 표시하십시오.ibmcloud ce job get --name myjob-local출력 예
[...] Name: myjob-local ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-04-14T16:10:11-04:00 Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local Resource Allocation: CPU: 1 Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Runtime: Mode: task Array Indices: 0 Array Size: 1 Max Execution Time: 7200 Retry Limit: 3 Build Information: Build Run Name: myjob-local-run-220420-150457582 Build Type: local Build Strategy: dockerfile-medium Timeout: 600 Source: . Dockerfile: Dockerfile Build Run Summary: Succeeded Build Run Status: Succeeded Build Run Reason: All Steps have completed executing Run 'ibmcloud ce buildrun get -n myjob-local-run-220420-150457582' for details.. [...] -
작업이 작성되고 이미지가 빌드되었으므로 빌드된 이미지를 참조하는 작업을 실행하십시오. 이 예제 명령은
myjob-local작업 구성을 기반으로 하는myjobrun-local작업 실행을 실행합니다.ibmcloud ce jobrun submit --name myjobrun-local --job myjob-local -
(선택사항) 작업 실행의 세부사항을 확인하십시오.
ibmcloud ce jobrun get --name myjobrun-local출력 예
Getting jobrun 'myjobrun-local'... Getting instances of jobrun 'myjobrun-local'... Getting events of jobrun 'myjobrun-local'... Run 'ibmcloud ce jobrun events -n myjobrun-local' to get the system events of the job run instances. Run 'ibmcloud ce jobrun logs -f -n myjobrun-local' to follow the logs of the job run instances. OK Name: myjobrun-local ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2d15h Created: 2022-04-14T16:10:11-04:00 Job Ref: myjob-local Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-local Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Registry Secrets: ce-auto-icr-private-us-south Runtime: Mode: task Array Indices: 0 Array Size: 1 JOP_ARRAY_SIZE Value: 1 Max Execution Time: 7200 Retry Limit: 3 Status: Completed: 2m40s Instance Statuses: Succeeded: 1 Conditions: Type Status Last Probe Last Transition Pending True 2m44s 2m44s Running True 2m40s 2m40s Complete True 2m40s 2m40s Events: Type Reason Age Source Messages Normal Updated 2m41s (x3 over 2m45s) batch-job-controller Updated JobRun "myjobrun-local" Normal Completed 2m41s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun-local-0-0 0/1 Succeeded 0 2m45s
작업이 작성되어 저장소 소스 코드에서 실행되었으므로 ibmcloud ce job update 명령을 사용하여 필요에 맞게 작업을 업데이트할 수 있습니다. 작업 업데이트에 대한 자세한 정보는 작업 업데이트를
참조하십시오. 작업에 사용할 소스를 업데이트하려면 job update 명령에 --build-source 옵션을 제공해야 합니다.
로컬 소스에서 이미지를 빌드하고 단일 명령으로 작업을 작성하는 대신 작업을 작성하기 전에 먼저 로컬 소스에서 빌드하도록 선택할 수 있습니다. 로컬 워크스테이션에서 소스를 가져오는 빌드 구성 작성 을 참조하십시오.
CLI를 사용하여 로컬 소스 또는 저장소 소스 코드 에서 작업을 작성하는 경우 결과 빌드 실행은 빌드 구성을 기반으로 하지 않습니다. 완료된 빌드 실행은 결국 자동으로 삭제됩니다. 빌드 실행이 성공하면 빌드 구성을 기반으로 하지 않는 빌드 실행이 1시간후에 삭제됩니다. 빌드 실행이 실패하면 이 빌드 실행은 24시간후에 삭제됩니다. CLI를 사용하여 이 빌드 실행에 대한 정보만 표시할 수 있습니다. 콘솔에서 이 빌드 실행을 볼 수 없습니다.
다음 단계
-
작업을 작성한 후 작업을 제출하여 실행하십시오. 작업 실행을 참조하십시오. 작업은 여러 번 실행할 수 있습니다.
-
작업을 실행한 후 작업 및 작업 실행의 세부사항을 보려면 작업 세부사항 액세스를 참조하십시오.
-
작업이 작성되었으므로 작업을 이벤트 기반 작업으로 설정하십시오. 이벤트 구독을 사용하여 정기적인 스케줄에 따라 작업을 트리거하거나 파일 업로드 등의 이벤트에 대응하도록 작업을 설정할 수 있습니다.
-
작업 작성 방식이나 이전의 업데이트 방식에 관계없이 다음 방법 중 하나로 작업을 업데이트하고 참조 코드를 업데이트할 수 있습니다.
-
Open Container Initiative(OCI)표준에 따라 컨테이너 이미지가 있는 경우, 작업을 생성(또는 업데이트)할 때 해당 이미지의 위치로 연결되는 컨테이너 레지스트리 경로를 참조로만 제공하면 됩니다. 공개 레지스트리나 비공개 레지스트리에 있는 이미지를 사용하여 작업을 생성(또는 업데이트)한 다음, 작업 실행 시 참조된 이미지에 액세스할 수 있습니다.
job create명령을 사용하여 작업을 작성하고 로컬 또는 저장소 소스에서 컨테이너 이미지를 빌드하기 위해--build-source옵션을 지정한 경우 다른 컨테이너 이미지를 가리키도록 작업을 변경하려면 먼저 작업에서 빌드의 연관을 제거해야 합니다. 예를 들어,ibmcloud ce job update -n JOB_NAME --build-clear를 실행하십시오. 작업에서 빌드의 연관을 제거한 후 다른 이미지를 참조하도록 작업을 업데이트할 수 있습니다. -
Git 저장소에 있는 소스 코드로 시작하는 경우, Code Engine에서 한 번의 오퍼레이션으로 소스에서 이미지를 빌드하고 작업을 작성하거나 업데이트하도록 선택할 수 있습니다. 이 경우 Code Engine은 이미지를 IBM Cloud® Container Registry에 업로드합니다. 자세한 정보는 저장소 소스 코드에서 작업 작성을 참조하십시오. 이미지 빌드를 더 많이 제어하려면 작업을 작성 또는 업데이트하고 작업을 실행하기 전에 Code Engine을 사용하여 이미지를 빌드하도록 선택할 수 있습니다.
-
로컬 워크스테이션에 있는 소스 코드로 시작하는 경우, Code Engine에서 하나의 CLI 명령으로 소스에서 이미지를 빌드하고 작업을 작성하도록 선택할 수 있습니다. 이 경우 Code Engine은 이미지를 IBM Cloud® Container Registry에 업로드합니다. 자세한 정보는 CLI를 사용하여 로컬 소스 코드에서 작업 작성을 참조하십시오. 이미지 빌드를 더 많이 제어하려면 작업을 작성 또는 업데이트하고 작업을 실행하기 전에 Code Engine을 사용하여 이미지를 빌드하도록 선택할 수 있습니다.
예를 들어, 사용자가 작업에 대한 소스 개발을 진행하는 동안 Code Engine에서 로컬 소스의 빌드를 처리하도록 선택할 수 있습니다. 그런 다음 이미지가 만기되면 원하는 특정 이미지를 참조하도록 작업을 업데이트할 수 있습니다. 이 프로세스는 필요에 따라 반복할 수 있습니다.
업데이트된 작업을 실행할 때 이미지에 대해 태그를 지정하지 않는 한 참조된 컨테이너 이미지의 최신 버전이 작업 실행에 사용됩니다. 이미지에 대해 태그를 지정한 경우 태그 지정된 이미지가 작업 실행에 사용됩니다.
-
더 많은 코드 예를 찾고 계십니까? IBM Cloud Code Engine GitHub 저장소의 예제를 확인해 보세요.