docker - 无法使用Jenkins CloudFoundryPlugin将Docker镜像推送到Cloud Foundry

标签 docker jenkins jenkins-plugins cloudfoundry

我正在尝试使用Cloud Foundry插件将Docker注册表镜像推送到CloudFoundry。应用程序在暂存步骤中失败。

我已经在manifest.yml文件中添加了注册表URL和用户名,并在cf docs中提到的环境变量中提供了密码。

Jenkinsfile片段:

stage ('Dev_Deployment') {
            steps{
                sh 'export CF_DOCKER_PASSWORD=$USER_CREDENTIALS_PSW'
                pushToCloudFoundry(
                  target: 'https://api.sys.dev.example.io',
                  credentialsId: 'pcfcreds',
                  organization: 'pcforg',
                  cloudSpace: 'pcfspace',
                  manifestChoice: [manifestFile: 'manifest.yml']
                )
              }
          }

manifest.yml代码:
---
applications:
- name: App-1
  memory: 1G
  instances: 1
  host: App-1
  disk_quota: 1G
  docker:
    image: registry-dev.apps.dev.example.io/app-1
    username: user1

我希望将Docker镜像作为PCF中的应用程序进行部署。

但是我在应用程序登台时遇到了错误
java.lang.IllegalStateException: Application SpringDemo-3 failed during staging
实际上,它并不将其视为docker部署。而是将其视为常规应用程序部署并搜索buildpack。
2019-07-08T19:23:14.80+0530 [STG/0] ERR None of the buildpacks detected a compatible application
是否有示例管道将安全注册表中的Docker镜像推送到CloudFoundry?

最佳答案

我已经遍历了Cloud Foundry Plugin Release Notes(直到2.3.1版),但没有找到可将docker镜像推送到Cloud Foundry的任何功能。

因此,我发现以下代码段是一种解决方法,其中CF CLI已用于推送docker镜像,而不是使用Cloud Foundry插件。

stage ('Dev_Deployment') {
    steps{
        sh 'pwd'
        sh 'which cf'
        sh 'cf --version'
        sh 'cf login -a $CF_API_ENDPOINT -u $CF_CREDENTIALS_USER -p $CF_CREDENTIALS_PASSWORD'
        sh 'cf t -o $CF_ORG -s $CF_SPACE'
        sh 'CF_DOCKER_PASSWORD=$DOCKER_CREDENTIALS_PASSWORD cf push'
    }
}

关于docker - 无法使用Jenkins CloudFoundryPlugin将Docker镜像推送到Cloud Foundry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56938536/

相关文章:

Docker-compose 和 Xvfb 不兼容?

Jenkins - 触发其他项目的参数化构建

java - 如果 JUnit 覆盖率低于特定阈值,如何使 Maven 构建失败

Jenkins 管道警告图

jenkins - Jenkins Cobertura 插件如何操作来启用源代码查看?

database - 使用数据库服务名称使用 keycloak 配置数据库

docker - 如何在 Windows 命令提示符中设置环境变量,以便它们像 bash 导出一样以 `docker run -e FOO -e …` 传递

docker - 无法启动容器。错误消息 : Open Compute System failed

docker - 使用 sudo 运行 jenkins 管道代理

java - 部署 Jenkins 时数据库服务器问题