TeamCity 빌드 에이전트 컨테이너에 JDK 추가

5279 단어 TeamCity자바

목적



자신의 환경에 있던 빌드 에이전트 환경의 컨테이너를 준비할 수 있다.

빌드 에이전트 구성 정책



빌드 에이전트의 구성에는 두 가지 정책이 있습니다.

1: 풍부한 빌드 에이전트



빌드 에이전트는 무료 프레임에서는 2개까지이므로, 작은 프로젝트 유스에서는 (비용을 지불하지 않는 한) 1개의 에이전트에 복수의 빌드 환경을 갖게 하고 싶을 것이다.
아마도 개인 유스에서도 대략 같다고 생각한다.

2: 최소한의 빌드 에이전트



빌드 에이전트를 최소화함으로써, 빌드 환경의 셋업은 간단하게 끝낼 수가 있고, Dockerfile도 작게 끝난다.
반면 에이전트의 관리를 수동으로 실시해야 한다.

베이스 검토



특별한 요구 사항이 없으면 일반 에이전트 컨테이너을 출발점으로 사용하는 것이 좋습니다. .NET 빌드나 Docker 배포용의 환경 셋업도 이루어지고 있는 것 같다.
한편, 하드 프로젝트 유스로 컨테이너를 조금이라도 작고 싶거나, 완전하게 관리하기 위해 불필요한 것을 넣고 싶지 않은 경우에는 최소 에이전트 컨테이너 를 이용할지도 모른다.

어느 쪽이든, 에이전트 자체의 실행 환경으로서 Java8는 들어가 있다. (OpenJDK 파생 Amazon Coretto를 사용하는 것 같습니다)

주제: JDK 추가



이번에는 최소 에이전트 컨테이너을 출발점으로 JDK를 추가하기로 했다.
사용할 컨테이너는 linux (Ubuntu) 태그의 latest입니다.

Java 추가 대상



에이전트 Java 환경 자동 감지 을 참조하면 다음의 디렉토리군에서 자동 검지된다고 한다.
그리고는 설정 파일에 탐색처 패스를 설정할 수 있는 것 같다.

유닉스

The following directories are searched for Java subdirectories:

/usr/local/java
/usr/local
/usr/java
/usr/lib/jvm
/usr

샘플: Amazon Corretto 11



jdk11을 추가하는 경우 Dockerfile 샘플.
최소 에이전트 컨테이너 의 JDK 추가를 팩해 돈.

Dockerfile
FROM jetbrains/teamcity-minimal-agent:latest

LABEL maintainer=""

# JDK preparation start

# Amazon Coretto 11
ARG MD5SUM='08a0cea184824c5477a62ce6a6a0fb0b'
ARG JDK_URL='https://d3pxv6yz143wms.cloudfront.net/11.0.3.7.1/amazon-corretto-11.0.3.7.1-linux-x64.tar.gz'

RUN set -eux; \
    curl -LfsSo /tmp/openjdk.tar.gz ${JDK_URL}; \
    echo "${MD5SUM} */tmp/openjdk.tar.gz" | md5sum -c -; \
    mkdir -p /usr/local/java/openjdk; \
    cd /usr/local/java/openjdk; \
    tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
    rm -rf /tmp/openjdk.tar.gz;

# JDK preparation end
##################################

AGENT_NAME을 사용하여 상담원의 이름을 지정하면 서버에서 관리하기 쉽습니다.

docker-compose.yml
version: '3'

services:
  ci-agent-java11:
    build: ./ci/ci-agent/
    environment: 
      - SERVER_URL=ci:8111
      - AGENT_NAME=Java11
    ports:
      - 9090:9090
   volumes:
      - ./ci/agent-java11/conf:/data/teamcity_agent/conf

빌드 단계에 JDK11 지정



빌드 단계는 기본값이며 빌드 에이전트 JAVA_HOME 의 JDK를 사용하므로 설정한 JDK를 지정합니다.



참고: 에이전트를 풀에 할당


default 풀만으로 관리하기 어려운 경우에는 에이전트를 적절하게 풀로 나누어 프로젝트별로 할당합시다.



이죠.

좋은 웹페이지 즐겨찾기