Cet article détaille la création d'une image Ubuntu Docker personnalisée préconfigurée avec SDKMAN, un gestionnaire SDK polyvalent et l'intégrant dans un pipeline Gitlab CI / CD. Cela garantit un développement cohérent et des environnements CI / CD.
Le dockerfile suivant crée une image Ubuntu 20.04, installe des dépendances et configure SDKMAN avec des versions spécifiques Java, Scala et SBT:
<code class="language-dockerfile"># Dockerfile FROM ubuntu:20.04 # Install dependencies RUN apt-get update && apt-get install -y curl unzip zip bash git vim wget jq tmux # Install SDKMAN! RUN curl -s "https://get.sdkman.io" | bash # Set shell and source SDKMAN SHELL ["/bin/bash", "-c"] RUN source "$HOME/.sdkman/bin/sdkman-init.sh" && \ sdk install java 21.0.2-open && \ sdk install sbt 1.8.2 && \ sdk install scala 2.13.10 # Set working directory WORKDIR /app</code>
Explication: Le dockerfile utilise ubuntu:20.04
comme base. Les outils essentiels sont installés à l'aide de apt-get
. SDKMAN est installé via son script et des versions SDK spécifiques sont ensuite installées. Enfin, le répertoire de travail est défini sur /app
.
Créez l'image en utilisant:
<code class="language-bash">docker build -t bansikah/gitlab-ci:v1.0.1 .</code>
Poussez l'image vers votre registre Docker (par exemple, Docker Hub): (image omise pour la concision, mais le processus est affiché visuellement.)
Ce fichier .gitlab-ci.yml
utilise l'image personnalisée et vérifie l'installation SDKMAN:
<code class="language-yaml"># .gitlab-ci.yml image: bansikah/gitlab-ci:v1.0.1 stages: - test test-job: stage: test script: - echo "Checking SDKMAN version..." - source "$HOME/.sdkman/bin/sdkman-init.sh" - sdk version - echo "Checking installed SDKs..."</code>
Explication: Le .gitlab-ci.yml
spécifie l'image personnalisée. A test
Stage exécute un travail qui s'approvisionne SDKMAN, vérifie sa version et vérifie (implicitement) les installations SDK en tentant d'exécuter sdk version
.
Pousser le .gitlab-ci.yml
vers votre référentiel GitLab déclenche le pipeline. Le test-job
utilise l'image personnalisée, vérifiant SDKMAN et ses SDKS installés.
Cette image Docker personnalisée rationalise le développement et CI / CD en fournissant un environnement cohérent avec des SDK préinstallés. Une personnalisation supplémentaire est possible en ajoutant plus de SDK ou d'outils selon les besoins. Reportez-vous à la documentation SDKMAN, DOCKER et GITLAB CI / CD pour plus d'informations.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!