使用Jenkins声明性管道创建.NET核心应用程序docker映像

时间:2018-08-25 16:56:55

标签: docker jenkins dockerfile jenkins-pipeline docker-image

我正在尝试自动创建.NET核心应用(微服务)的docker映像。
dockerfile内容:

FROM microsoft/dotnet:2.1-runtime AS base
WORKDIR /app

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY Plugin/Plugin.csproj Plugin/
COPY . .
WORKDIR /src/Plugin
RUN dotnet build Plugin.csproj -c Release -o /app

FROM build AS publish
RUN dotnet publish Plugin.csproj -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Plugin.dll"]

使用

在我的本地服务器上执行时,此dockerfile可以完全正常工作
docker build -t plugin:plugin --force-rm --compress  --label captureplugin -f .\Plugin\Dockerfile .

最后,我有一个与此应用程序相关的图像,可以进一步将其作为容器执行,或推送到注册表,并在另一个服务器上作为容器执行。

我正在尝试使用以下语法在Jenkins中创建声明性管道:

pipeline {
    agent any
    stage ('Checkout git') {
        agent any
        steps {
            git(
                branch: 'feature/104',
                credentialsId: 'xxxxx-xxxx-xxx-xxxx-xxxxx',
                url: 'git@git.xxx.com:xxxxx/xxxxx.git'  
            )
        }
    }
    stage ('Build') {
        agent {
            dockerfile {
        filename 'Dockerfile'
        label 'plugin'
        additionalBuildArgs '-t plugin:plugin --force-rm --compress  -f ./Plugin/Dockerfile'
            args '.'
            dir './Plugin/'
        }

}
    }
    post {
    always {
        cleanWs()
        }
    }
}

但是,存在多个Jenkins错误,这通常表示格式不正确(甚至是agent指令,步骤或阶段等)。

我应该如何以正确的形式描述我的要求?

0 个答案:

没有答案