Sie können einen Container für die Build-Agent-Umgebung vorbereiten, die zu Ihrer Umgebung passt.
Es gibt zwei Richtlinien für die Konfiguration des Build-Agenten.
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.
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.
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.)
Dieses Mal habe ich beschlossen, ein JDK ab Minimum Agent Container hinzuzufügen. Der verwendete Container ist das "Linux" (Ubuntu) -Tag "Neueste".
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
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
Wenn der Erstellungsschritt der Standard ist, wird das JDK des Erstellungsagenten "JAVA_HOME" verwendet. Geben Sie daher das festgelegte JDK an.
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.
Ijo.
Recommended Posts