Pet*_*ale 2 docker kubernetes jenkins-pipeline
在jenkins代理上构建映像时,我收到“不是有效的存储库/标签:无效的参考格式”错误。
当Docker版本<17.05尝试构建现代的多阶段dockerfile时,通常会发生此错误。
该代理正在Kubernetes集群上运行(服务器和运行1.9.2-gke.1的节点),并由以下Jenkinsfile进行了配置。
是因为我正在/var/run/docker.sock客户端上绑定服务器,而这是在17.03版本的docker上执行的?
JenkinsFile:
#!/usr/bin/groovy
podTemplate(label: 'jenkins-pipeline', containers: [
    containerTemplate(name: 'jnlp', image: 'jenkinsci/jnlp-slave:latest', args: '${computer.jnlpmac} ${computer.name}'),
    containerTemplate(name: 'docker', image: 'docker:latest', command: 'cat', ttyEnabled: true),
    containerTemplate(name: 'helm', image: 'lachlanevenson/k8s-helm:latest', command: 'cat', ttyEnabled: true)
],
volumes:[ hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'), ]) {
    node ('jenkins-pipeline') {
        stage('build') {
            container('docker') {
                dir ('src') {
                    sh "docker version"
                    sh "docker build -t ${tag} ."
                }
            }
        }
    }
}
检查docker版本:
# docker version
Client:
 Version:   18.02.0-ce
 API version:   1.27 (downgraded from 1.36)
 Go version:    go1.9.3
 Git commit:    fc4de44
 Built: Wed Feb  7 21:12:37 2018
 OS/Arch:   linux/amd64
 Experimental:  false
 Orchestrator:  swarm
Server:
 Engine:
  Version:  17.03.2-ce
  API version:  1.27 (minimum version 1.12)
  Go version:   go1.9.1
  Git commit:   f5ec1e2
  Built:    Thu Dec  7 20:13:20 2017
  OS/Arch:  linux/amd64
  Experimental: false
有问题的dockerfile:
FROM microsoft/aspnetcore:2.0 AS base
WORKDIR /app
EXPOSE 80
FROM microsoft/aspnetcore-build:2.0 AS build
WORKDIR /src
COPY XXXXXX.API.csproj ./
RUN dotnet restore
COPY . .
WORKDIR /src
RUN dotnet build -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "XXXXXX.API.dll"]
| 归档时间: | 
 | 
| 查看次数: | 18418 次 | 
| 最近记录: |