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