无法使用 bitbucket 管道在 Heroku 中部署 spring-boot 应用程序

Unable to deploy spring-boot app in Heroku using bitbucket pipelines

我正在尝试使用 bitbucket 管道在 heroku 中进行部署,我使用 spring-boot 创建了一个简单的 Web 应用程序。

我想知道你们是否知道 "bitbucket-pipelines.yml" 文件中需要什么?这是我第一次将 heroku 与 bitbucket 管道一起使用,我很迷茫。

我的文件如下所示:

image: maven:3.3.9   
clone:
  depth: full

pipelines:
  default:
    - step:
        script: # Modify the commands below to build your repository.
          - mvn -B clean install -P heroku # -B batch mode makes Maven less verbose
          - git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git HEAD

我会推荐以下步骤:

  1. 按照 Bitbucket Pipelines 文档中Deploy to Heroku中提到的步骤 1

  2. 请使用以下内容编辑您的 "bitbucket-pipelines.yml" 文件:

    image: maven:3.3.9
    clone:
      depth: full
    pipelines:
      default:
        - step:
          script:
            - git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git HEAD
            - mvn clean package
            - kill -9 $(lsof -t -i:<your_app_port_number> -sTCP:LISTEN)
            - java -jar target/<your-app-name>.jar &
    

注意:

  1. < your_app_port_number >< your-app-name > 替换为适当的值。

  2. 记得用online validator检查你的"bitbucket-pipelines.yml"文件。

这是我的 bitbucket-pipelines.yml,其中指定了 spring 配置文件。

image: maven:3.3.9

clone:
  depth: full

pipelines:
  default:
    - step:
        name: Deploy to Heroku
        deployment: test   # set to test, staging or production
        script:
          - mvn -B clean package -Dspring.profiles.active=prod # -B batch mode makes Maven less verbose
          - git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git HEAD

我有一个 Profile 有:
web: java -Dserver.port=$PORT $JAVA_OPTS -Dspring.profiles.active=prod -jar target/my-api-1.0.0-SNAPSHOT.jar

确保您已在 BitBucket 上配置 $HEROKU_API_KEY 和 $HEROKU_APP_NAME,例如: