[JAVA] Fügen Sie JDK zum TeamCity Build Agent-Container hinzu

Zweck

Sie können einen Container für die Build-Agent-Umgebung vorbereiten, die zu Ihrer Umgebung passt.

Konfigurationsrichtlinie für Build-Agenten

Es gibt zwei Richtlinien für die Konfiguration des Build-Agenten.

1: Rich Build Agent

Es gibt bis zu zwei Build-Agenten in der kostenlosen Ebene. Für die Verwendung in kleinen Projekten sollte ein Agent mehrere Build-Umgebungen haben (es sei denn, Sie zahlen). Wahrscheinlich das gleiche für den persönlichen Gebrauch.

2: Minimaler Build Agent

Durch die Minimierung des Build-Agenten ist das Einrichten der Build-Umgebung einfach und die Docker-Datei klein. Auf der anderen Seite müssen Sie den Agenten manuell verwalten.

Basisstudie

Sofern Sie keine speziellen Anforderungen haben, empfiehlt es sich, mit dem regulären Agentencontainer (https://github.com/JetBrains/teamcity-docker-agent) zu beginnen. Es scheint, dass die Umgebung für die .NET-Erstellung und die Docker-Bereitstellung eingerichtet wurde. Auf der anderen Seite, wenn Sie den Container für den harten Projekteinsatz so klein wie möglich machen möchten oder wenn Sie keine zusätzlichen Dinge für die vollständige Verwaltung einfügen möchten, [Minimum Agent Container](https://github.com/JetBrains/teamcity- Docker-Minimal-Agent) kann verwendet werden.

In jedem Fall ist Java 8 als Ausführungsumgebung des Agenten selbst enthalten. (Es scheint, dass Sie Amazon Coretto verwenden, das von OpenJDK abgeleitet ist.)

Hauptthema: Hinzufügung von JDK

Dieses Mal habe ich beschlossen, ein JDK ab Minimum Agent Container hinzuzufügen. Der verwendete Container ist das "Linux" (Ubuntu) -Tag "Neueste".

Wo kann man Java hinzufügen?

Wenn Sie auf [Automatische Erkennung der Java-Umgebung des Agenten] verweisen (https://www.jetbrains.com/help/teamcity/predefined-build-parameters.html#PredefinedBuildParameters-DetectingJavaonAgent), wird dies in den folgenden Verzeichnissen automatisch erkannt. .. Danach können Sie den Suchzielpfad in der Einstellungsdatei festlegen.

Unix

The following directories are searched for Java subdirectories:

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

Beispiel: Amazon Correto 11

Dockerfile-Beispiel beim Hinzufügen von jdk11. Vergessen Sie nicht, das JDK für Minimum Agent Container hinzuzufügen.

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
##################################

Die Verwaltung auf dem Server ist einfacher, wenn Sie den Agenten mit AGENT_NAME benennen.

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

Geben Sie JDK11 im Erstellungsschritt an

Wenn der Erstellungsschritt der Standard ist, wird das JDK des Erstellungsagenten "JAVA_HOME" verwendet. Geben Sie daher das festgelegte JDK an.

image.png

Referenz: Weisen Sie Pools Agenten zu

Wenn es schwierig ist, nur mit dem Standardpool zu verwalten, teilen Sie die Agenten entsprechend in Pools auf und weisen Sie sie jedem Projekt zu.

image.png

Ijo.

Recommended Posts

Fügen Sie JDK zum TeamCity Build Agent-Container hinzu
4 Fügen Sie dem Interpreter println hinzu
Fügen Sie der Datei erweiterte Attribute hinzu
So fügen Sie die Löschfunktion hinzu
Installieren Sie Ubuntu20.04 auf RaspberryPi 4 und erstellen Sie Kubernetes, um den Container auszuführen
Ich wollte der Methode @VisibleForTesting hinzufügen
[Docker] Erstellen, wenn der Quellcode auf dem Container gebunden ist
Docker Container Build kann PHP-Radis nicht installieren
So überprüfen Sie das Protokoll im Docker-Container
Ändern Sie die Zeitzone des https-Portal-Containers in JST
Klassenpfad hinzufügen: zu dem in spring.datasource.schema angegebenen Pfad
So erstellen Sie die einfachste Blockchain in Ruby
Organisierte schrittweise Interaktion mit dem JDK
Ich möchte der Kommentarfunktion eine Löschfunktion hinzufügen