Rumah >Java >javaTutorial >Membina imej Ubuntu tersuai dengan SDKMan dan menggunakannya dalam saluran paip CI/CD Gitlab
Butir-butir artikel ini mencipta imej Docker Ubuntu tersuai yang telah dikonfigurasi dengan SDKMan, pengurus SDK yang serba boleh, dan mengintegrasikannya ke dalam saluran paip CI/CD Gitlab. Ini memastikan perkembangan yang konsisten dan persekitaran CI/CD.
Dockerfile berikut mencipta imej Ubuntu 20.04, memasang kebergantungan, dan menetapkan SDKMAN dengan versi Java, Scala, dan SBT tertentu:
<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>
Penjelasan: Dockerfile menggunakan ubuntu:20.04
sebagai pangkalannya. Alat penting dipasang menggunakan apt-get
. SDKMAN dipasang melalui skripnya, dan versi SDK tertentu kemudian dipasang. Akhirnya, direktori kerja ditetapkan ke /app
.
Bina imej menggunakan:
<code class="language-bash">docker build -t bansikah/gitlab-ci:v1.0.1 .</code>
Langkah 2: Integrasi Gitlab CI/CD
.gitlab-ci.yml
<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>Penjelasan:
Menentukan imej tersuai. Peringkat menjalankan pekerjaan yang sumber SDKMAN, memeriksa versi, dan (secara tersirat) mengesahkan pemasangan SDK dengan cuba menjalankan .gitlab-ci.yml
. test
sdk version
Langkah 3: Menjalankan saluran paip
menggunakan imej tersuai, mengesahkan SDKman dan SDK yang dipasang. .gitlab-ci.yml
test-job
Kesimpulan
Atas ialah kandungan terperinci Membina imej Ubuntu tersuai dengan SDKMan dan menggunakannya dalam saluran paip CI/CD Gitlab. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!