如何在azure管道中使用的windows-latest代理上使用postgres db?

问题描述

我有一个 java maven 项目,我正在构建一个带有主机“windows-latest”的天蓝色管道,因为它包含正确的 java 13 版本。但是,对于集成测试,我需要一个 postgres 数据库,而“windows-latest”代理包含一个 postgres 数据库,请参阅:link。但是我怎样才能使用它呢?我试图通过在 Maven 任务中作为服务包含它的 serviceName 来使用它:

services:
   postgres: postgresql-x64-13

但后来我收到错误消息,找不到该名称的服务。 我尝试通过 env 设置定义 db 属性(请参阅下面的 yml),然后显示错误:

Caused by: java.net.ConnectException: Connection refused

我还尝试通过我在开发过程中使用的项目根目录中的 docker-compose.yml 通过脚本任务运行它,但是 docker-compose 抛出一个错误,说它找不到撰写文件,我也怀疑这是正确的方法。

那么我可以在 windows 代理上使用 postgres 数据库吗?以及如何?

我的天蓝色管道片段:

    variables:
    MAVEN_CACHE_FOLDER: $(Pipeline.Workspace)/.m2/repository
    MAVEN_OPTS: "-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)"
    application_name: clearsky
    service_name: backend
    mygetUsername: myserUsername
    mygetPassword: mytoken
    SPRING_DATASOURCE_URL: jdbc:postgresql://localhost:5432/postgres
    SPRING_DATASOURCE_USER: postgres
    SPRING_DATASOURCE_PASSWORD: root

stages:
    - stage: create_artifact
      displayName: Create artifact
      jobs:
          - job: build
            displayName: Build,test and publish artifact
            steps:
                - task: Maven@3
                  name: maven_package
                  displayName: Maven package
                  inputs:
                      goals: "package"
                      mavenPomFile: "backend/pom.xml"
                      options: '--settings backend/.mvn/settings.xml -DmygetUsername=$(mygetUsername) -DmygetPassword=$(mygetPassword)'
                      mavenOptions: "-Xmx3072m $(MAVEN_OPTS)"
                      javaHomeOption: "JDKVersion"
                      jdkVersionOption: "1.13"
                      mavenAuthenticateFeed: true

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)