トラブル:
私はジェンキンスドッカーイメージを構築していると私はMavenの3およびJava 8の最後のJDKのインストールを自動化するようになります。しかし残念ながら、私は、これら二つのグルーヴィーなファイルがグルーヴィーなフォルダに見つけ使用します。
グルーヴィー/ java.groovy:
import jenkins.model.*
import hudson.model.*
import hudson.tools.*
def inst = Jenkins.getInstance()
def desc = inst.getDescriptor("hudson.model.JDK")
def versions = [ "jdk8": "jdk-8u202"]
def installations = [];
for (v in versions) {
def installer = new JDKInstaller(v.value, true)
def installerProps = new InstallSourceProperty([installer])
def installation = new JDK(v.key, "", [installerProps])
installations.push(installation)
}
desc.setInstallations(installations.toArray(new JDK[0]))
desc.save()
グルーヴィー/ maven.groovy:
import jenkins.*;
import jenkins.model.*;
import hudson.*;
import hudson.model.*;
mavenName = "maven3"
mavenVersion = "3.6.0"
println("Checking Maven installations...")
// Grab the Maven "task" (which is the plugin handle).
mavenPlugin = Jenkins.instance.getExtensionList(hudson.tasks.Maven.DescriptorImpl.class)[0]
// Check for a matching installation.
maven3Install = mavenPlugin.installations.find {
install -> install.name.equals(mavenName)
}
// If no match was found, add an installation.
if(maven3Install == null) {
println("No Maven install found. Adding...")
newMavenInstall = new hudson.tasks.Maven.MavenInstallation('maven3', null,
[new hudson.tools.InstallSourceProperty([new hudson.tasks.Maven.MavenInstaller(mavenVersion)])]
)
mavenPlugin.installations += newMavenInstall
mavenPlugin.save()
println("Maven install added.")
} else {
println("Maven install found. Done.")
}
そして私は、コマンドを実行します。
docker run -p 8080:8080 -v `pwd`/groovy:/var/jenkins_home/jobs --rm --name jenkinsdocker jenkinsdocker:latest
残念ながら、これはエラーを返します:
java.io.IOException: jenkins.model.InvalidBuildsDir: ${ITEM_ROOTDIR}/builds does not exist and probably cannot be created
私は逃した何か他のものがある場合はgroovyのファイルが間違っているかどうかはただ思ったんだけど?
実行中にどのように私はジェンキンスのためのMaven / Javaのインストールを自動化することができますドッカ実行を?またはそれを行うための別の方法は何ですか?
カルロスCavero:
私はいくつかのドッキングウィンドウの画像あなたはジェンキンスから生成されると思いますので、私は、jenkinsdockerイメージを見つけられませんでした。以下のいずれかの場合には、このjenkinsdockerドキュメントあなたがあなたのGroovyスクリプトを置くべきinit.groovy.d
フォルダのinitに実行されます。ドッキングウィンドウの修正を実行する必要がありそうjobs
でinit.groovy.d
、使いjenkins:latest
画像を:
docker run -p 8080:8080 -v `pwd`/groovy:/var/jenkins_home/init.groovy.d/ --rm --name jenkins jenkins:latest
また、上記の例のように(あなたがインスタンスのバージョン2.60.3を使用することができます)、独自のDockerfileを作成することができます。
# Extended from https://github.com/jenkinsci/docker/blob/master/README.md
FROM jenkins/jenkins:2.60.3
# Skip setup wizard
ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false"
# Add groovy script to Jenkins hook
COPY --chown=jenkins:jenkins groovy/ /var/jenkins_home/init.groovy.d/
コンテナをビルドして実行します。
docker build jenkinsdocker -t .
docker run -p 8080:8080 --name jenkinsdocker jenkinsdocker:latest