首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有Jenkinsfile和Docker的多分支管道工程最佳实践

具有Jenkinsfile和Docker的多分支管道工程最佳实践
EN

Stack Overflow用户
提问于 2016-07-21 09:18:05
回答 1查看 1.1K关注 0票数 0

我是新的詹金斯和码头,并建立了一个新的多分支管道项目是独立于我们的构建服务器配置。我的应用程序包括一个包含几个阶段的Jenkinsfile,并使用了两个对接映像:一个是来自DockerHub的官方Mongo映像,另一个是由我自己创建的接口映像,包括Maven和Mercurial。

Dockerfile:

代码语言:javascript
复制
FROM maven:3.3.9-jdk-8
RUN apt-get update && apt-get install -y -q mercurial

我使用它在第一阶段中签出我的项目,并在第二阶段使用maven构建它。

我的Jenkinsfile看起来如下:

代码语言:javascript
复制
node {

    //...

    //CREATE A MONGO DOCKER IMAGE
    def dockerMongoImage = docker.image("mongo");

    // getting our maven container
    def maven = docker.build('my:docker', '../workspace')

    dockerMongoImage.withRun{ mongo ->
        maven.inside("--link=${mongo.id}:mongo") {
            stage "checkout branch '${env.BRANCH_NAME}'"

                def cloneUrl = createScmCloneUrl("https", scmUser, scmPassword, scmHref )
                sh "hg clone ${cloneUrl} -r ${env.BRANCH_NAME} ${workingDir} --insecure"

            stage "build - running clean install"
                runMvn(workingDir, mvnSettingsLocation, "clean install -U -V -DskipTests=true -X")

            // AND SO ON

整个配置运行良好,但我对容器内的签出不太满意。我的问题是,有没有比在容器内结账更好的解决方案。这将防止我遇到一些DNS问题。有没有人对此有一定的经验,并能告诉我什么是最佳实践。我在google上搜索了很多次,但是没有找到很好的解决方案。谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2016-11-11 21:40:57

首先检查节点上的代码,然后使用-v将该文件夹挂载到停靠器容器中。

(-v,- Bind =host:容器-dest:绑定挂载卷。)

代码语言:javascript
复制
stage "checkout branch '${env.BRANCH_NAME}'"
def cloneUrl = createScmCloneUrl("https", scmUser, scmPassword, scmHref )
sh "hg clone ${cloneUrl} -r ${env.BRANCH_NAME} ${workingDir} --insecure"

stage "build - running clean install"
dockerMongoImage.withRun{ mongo ->
    maven.inside("--link=${mongo.id}:mongo -v ${workingDir}:/source") {
        runMvn("/source", mvnSettingsLocation, "clean install -U -V -DskipTests=true -X")
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38500008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档