Vous pouvez préparer un conteneur pour l'environnement d'agent de build qui convient à votre environnement.
Il existe deux stratégies pour la configuration de l'agent de création.
Il n'y a que deux agents de build dans le niveau gratuit, donc pour une petite utilisation de projet, vous voudrez qu'un agent ait plusieurs environnements de build (sauf si vous payez). Probablement la même chose pour un usage personnel.
En minimisant l'agent de build, la configuration de l'environnement de build est facile et le Dockerfile est petit. D'autre part, vous devez gérer l'agent manuellement.
Sauf si vous avez une exigence spécifique, c'est une bonne idée de commencer avec le conteneur d'agent régulier (https://github.com/JetBrains/teamcity-docker-agent). Il semble que l'environnement a été configuré pour la construction .NET et le déploiement de Docker. D'un autre côté, si vous voulez rendre le conteneur aussi petit que possible pour une utilisation intensive de projets, ou si vous ne voulez pas ajouter d'éléments supplémentaires pour une gestion complète, [Minimum Agent Container](https://github.com/JetBrains/teamcity- docker-minimal-agent) peut être utilisé.
Dans tous les cas, Java 8 est inclus comme environnement d'exécution de l'agent lui-même. (Il semble que vous utilisez Amazon Coretto dérivé d'OpenJDK)
Cette fois, j'ai décidé d'ajouter un JDK à partir de Minimum Agent Container.
Le conteneur utilisé est le dernier tag linux
(Ubuntu).
Si vous vous référez à Détection automatique de l'environnement Java de l'agent, il sera automatiquement détecté dans les répertoires suivants. .. Après cela, il semble que vous puissiez définir le chemin de destination de la recherche dans le fichier de paramètres.
Unix
The following directories are searched for Java subdirectories:
/usr/local/java /usr/local /usr/java /usr/lib/jvm /usr
Exemple Dockerfile lors de l'ajout de jdk11. N'oubliez pas d'ajouter le JDK pour Minimum Agent Container.
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
##################################
Il est plus facile à gérer sur le serveur si vous nommez l'agent avec 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
Si l'étape de construction est la valeur par défaut, le JDK de l'agent de construction JAVA_HOME
est utilisé, spécifiez donc l'ensemble JDK.
S'il est difficile de gérer avec le pool default
seul, divisez les agents de manière appropriée en pools et attribuez-les à chaque projet.
Ijo.
Recommended Posts