我有一个java maven项目,我正在构建一个azure管道,作为主机“windows最新版本”,因为它包含正确的java 13版本。但是,对于集成测试,我需要一个postgres db,“windows最新”代理包含一个postgres db,请参阅:
link
.但我怎么能用这个?我试图通过在Maven task as service中包含它的serviceName来使用它:
services:
postgres: postgresql-x64-13
但是我得到了一个错误,它找不到这个名字的服务。
我尝试通过env设置定义db属性(请参见下面的yml),然后它显示了错误:
Caused by: java.net.ConnectException: Connection refused
我还尝试通过docker compose运行脚本任务。yml是我在开发过程中使用的项目的根目录,但是docker compose抛出了一个错误,说它找不到compose文件,我也怀疑这是正确的方法。
那么我可以在windows代理上使用postgres db吗?如何做到这一点?
My azure管道代码段:
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