Создание образа докера основного приложения .NET с использованием декларативного конвейера Jenkins - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь выполнить автоматическое создание образов докеров моего основного приложения .NET (микросервисы).
Содержание 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, говорящих (в общем) о неправильном формате (даже директива агента, или шаги, или этап и т. Д.).

Как мне описать мои требования в правильной форме?

...