저장소 소스 코드에서 작업 작성
IBM Cloud® Code Engine 콘솔 및 CLI를 사용하여 Git 저장소에 있는 소스 코드에서 직접 작업을 작성할 수 있습니다. Code Engine으로 이미지를 빌드하는 경우 얻을 수 있는 이점에 대해 알아보십시오.
콘솔을 통해 저장소 소스 코드에서 작업 작성
콘솔을 사용하여 소스 코드에서 직접 작업을 작성할 수 있습니다.
시작하기 전에 빌드를 계획하십시오. Dockerfile 작성에 대한 팁을 찾을 수도 있습니다. 작업을 실행할 때마다 빌드 팩 및 컨테이너 이미지를 포함한 최신 버전의 종속 빌드 아티팩트가 빌드 프로세스 중에 사용되고 결과 컨테이너 이미지에 포함됩니다.
Code Engine은 계정의 IBM Cloud® Container Registry 네임스페이스에 이미지를 자동으로 푸시(업로드)하고 네임스페이스를 작성할 수도 있습니다. 이미지를 다른 Container Registry 계정 또는 개인용 Docker Hub 계정에 푸시하려면 컨테이너 레지스트리 액세스를 참조하십시오.
이미지 레지스트리에 액세스하는 데 필요한 권한에 대한 정보는 이미지 레지스트리의 권한 설정을 참조하십시오.
- Code Engine 콘솔을 여십시오.
- '만들기 시작'을 선택하세요.
- 사용 가능한 프로젝트 목록에서 프로젝트를 선택하십시오. 프로젝트를 새로 작성할 수도 있습니다. 작업을 작성하려면 선택한 프로젝트가 있어야 합니다.
- 작업을 선택하십시오.
- 작업의 이름을 입력하십시오. 프로젝트 내에서 고유한 작업 이름을 사용하십시오.
- '소스 코드에서 컨테이너 이미지 빌드'를 선택합니다.
- 빌드 세부사항 지정을 클릭하십시오.
- 소스 저장소(예:
https://github.com/IBM/CodeEngine)를 선택하십시오. 인증 정보가 필요하지 않은 샘플 소스를 사용하므로 코드 저장소 액세스에 대해None을 선택하십시오. 선택적으로 분기 이름을 제공할 수 있습니다. 분기 이름을 제공하지 않고 필드를 비워 두면 Code Engine에서 지정된 저장소의 기본 분기를 자동으로 사용합니다. 다음을 클릭하십시오. - 빌드에 대한 전략과 빌드의 리소스를 선택하십시오. 빌드 옵션에 대한 자세한 정보는 빌드 계획을 참조하십시오. 다음을 클릭하십시오.
- 빌드 출력의 이미지를 저장할 위치에 대한 레지스트리 정보를 제공하십시오.
IBM Registry Dallas과 같은 컨테이너 레지스트리 위치를 선택하세요. 레지스트리가 개인용인 경우에는 이에 대한 액세스 권한을 설정해야 합니다. - 기존 레지스트리 시크릿 을 선택하거나 새 시크릿을 생성하세요. 계정에 있는 IBM Cloud Container Registry 인스턴스에 이미지를 빌드하는 경우
Code Engine managed secret을 선택하고 Code Engine에서 시크릿을 작성하고 관리하도록 설정할 수 있습니다. - 이미지의 네임스페이스, 이름 및 태그를 선택하십시오. 계정에 있는 IBM Cloud Container Registry 인스턴스에 이미지를 빌드하는 경우 기존 네임스페이스를 선택하거나 Code Engine에서 네임스페이스를 작성하고 관리하도록 설정할 수 있습니다.
- 완료를 클릭하십시오.
- 환경 변수 또는 런타임 설정의 기본값을 수정하십시오. 이러한 옵션에 대한 자세한 정보는 작업 작성 및 실행 옵션을 참조하십시오.
- 작성을 클릭하십시오.
- 빌드 실행이 제출되면 빌드된 컨테이너 이미지가 Container Registry로 전송됩니다. 그러면 작업이 빌드된 이미지를 참조할 수 있습니다. 작업이 준비되면 작업 제출을 클릭하여 현재 구성을 기반으로 하는 작업을 실행하십시오.
완료된 빌드 실행은 결국 자동으로 삭제됩니다. 빌드 실행이 빌드 구성을 기반으로 하는 경우 빌드 실행이 성공하면 이 빌드 실행은 3시간후에 삭제됩니다. 빌드 실행이 성공하지 못한 경우, 해당 빌드 실행은 48시간 후에 삭제됩니다.
작업을 작성하고 작업을 실행했으므로 작업 페이지에서 작업 구성 및 작업 실행에 대한 세부사항을 확인할 수 있습니다.
도움이 필요하십니까? 빌드에 대한 문제점 해결 팁을 확인하십시오.
CLI를 사용하여 저장소 소스 코드에서 작업 작성
CLI를 사용하여 저장소 소스 코드에서 직접 작업을 작성할 수 있습니다. job create 명령을 사용하여 Git 저장소 소스에서 이미지를 빌드하고 작업 구성을 정의하십시오.
시작하기 전에
- Code Engine CLI 환경을 설정하십시오.
- 프로젝트를 작성하고 작업하십시오.
이 경우 Code Engine은 Git 저장소 소스에서 이미지를 빌드하고 컨테이너 레지스트리에 이미지를 자동으로 업로드한 후 job create 명령으로 빌드된 이 이미지를 참조하도록 작업 구성을 작성하십시오. 이미지가 IBM Cloud® Container Registry 계정에 있는 경우 작업 이름과 Git 저장소의 URL만 제공하면 됩니다. 이 경우 네임스페이스는 Code
Engine에서 관리합니다. 하지만 다른 컨테이너 레지스트리를 사용하려면 해당 컨테이너 레지스트리에 대한 이미지 및 레지스트리 시크릿을 지정해야 합니다. 빌드된 이미지를 참조하는 작업을 실행하려면 ibmcloud ce jobrun submit 명령을 사용하십시오. 전체 옵션 목록은 ibmcloud ce job create 및 ibmcloud ce jobrun submit 명령을 참조하십시오.
이미지 레지스트리에 액세스하는 데 필요한 권한에 대한 정보는 이미지 레지스트리의 권한 설정을 참조하십시오.
-
job create명령을 사용하여https://github.com/IBM/CodeEngine빌드 소스에서 빌드된 이미지를 참조하는myjob-repo작업을 작성하십시오. 이 명령은 자동으로 이미지를 빌드한 후 계정의 IBM Cloud® Container Registry 네임스페이스에 이미지를 업로드합니다. 그러면 이 작업의 작업 실행에서 이 빌드된 이미지를 참조합니다.--build-context-dir옵션을 지정하면 빌드는helloworld디렉토리에 있는 소스를 사용합니다. 이 예제 명령은 기본dockerfile전략 및 기본medium빌드 크기를 사용합니다.--build-commit옵션으로 저장소의 분기 이름을 지정하지 않았기 때문에 Code Engine에서는 지정된 저장소의 기본 분기를 자동으로 사용합니다.--wait옵션을 추가하면 이미지 빌드가 완료될 때까지 작업 작성을 대기하도록 지정합니다.ibmcloud ce job create --name myjob-repo --build-source https://github.com/IBM/CodeEngine --build-context-dir helloworld --wait출력 예
Creating job 'myjob-repo'... Submitting build run 'myjob-repo-run-220420-15590196'... Creating image 'private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-repo'... Waiting for build run to complete... Build run status: 'Running' Build run completed successfully. Run 'ibmcloud ce buildrun get -n myjob-repo-run-220420-15590196' to check the build run status. OK--wait옵션을 지정했기 때문에,job create명령어의 출력에는 작업이 생성되기 전 빌드 실행의 진행 상황에 대한 정보가 제공됩니다.이 예에서는 빌드된 이미지가 IBM Cloud Container Registry의
ce--abcde-glxo4kabcde네임스페이스에 업로드됩니다.다음 표에는 이 예에서
job create명령과 함께 사용되는 옵션이 요약되어 있습니다. 명령 및 해당 옵션에 대한 자세한 정보는ibmcloud ce job create명령을 참조하십시오.명령 설명 옵션 설명 --name작업 이름입니다. 프로젝트 내에서 고유한 이름을 사용하십시오. 이 값은 필수입니다.
- 이름은 소문자 영숫자로 시작하고 끝나야 합니다.
- 이름은 63자 이하여야 하며 문자, 숫자 및 하이픈(-)을 포함할 수 있습니다.
--build-source소스 코드가 포함된 Git 저장소의 URL입니다(예: https://github.com/IBM/CodeEngine).--build-context-dir빌드팩 파일 또는 Dockerfile이 포함되어 있는 저장소의 디렉토리입니다. 이 값은 선택사항입니다. --wait작업을 작성하기 전에 이미지 빌드가 완료될 때까지 대기하도록 지정합니다. -
(선택사항)
job get명령을 사용하여 빌드 정보를 포함하여 작업에 대한 정보를 표시하십시오.ibmcloud ce job get --name myjob-repo출력 예
[...] Name: myjob-repo 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-repo 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-repo-run-220420-15590196 Build Type: git Build Strategy: dockerfile-medium Timeout: 600 Source: https://github.com/IBM/CodeEngine Context Directory: helloworld 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-repo-run-220420-15590196' for details. -
작업이 작성되고 이미지가 빌드되었으므로 빌드된 이미지를 참조하는 작업을 실행하십시오. 이 예제 명령은
myjob-repo작업 구성을 기반으로 하는myjobrun-repo작업 실행을 실행합니다.ibmcloud ce jobrun submit --name myjobrun-repo --job myjob-repo -
(선택사항) 작업 실행의 세부사항을 확인하십시오.
ibmcloud ce jobrun get --name myjobrun-repo출력 예
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-repo Image: private.us.icr.io/ce--abcde-glxo4kabcde/job-myjob-repo 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: 90s Instance Statuses: Succeeded: 1 Conditions: Type Status Last Probe Last Transition Pending True 101s 101s Running True 91s 91s Complete True 90s 90s Events: Type Reason Age Source Messages Normal Updated 91s (x4 over 102s) batch-job-controller Updated JobRun "myjobrun-repo" Normal Completed 91s batch-job-controller JobRun completed successfully Instances: Name Running Status Restarts Age myjobrun-repo-0-0 0/1 Succeeded 0 102s
작업이 작성되어 저장소 소스 코드에서 실행되었으므로 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 저장소의 예제를 확인해 보세요.