我正在尝试自动创建.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指令,步骤或阶段等)。
我应该如何以正确的形式描述我的要求?