如何在Azure devops中运行Azure cosmos DB模拟器与spring引导集成测试(java)?
目前cosmos DB模拟器只支持Windows服务器不支持linux?
有什么建议吗?
更新:1对于windows构建代理,下面的任务可以从azure管道中使用。
- task: CosmosDbEmulator@2
inputs:
containerName: 'azure-cosmosdb-emulator'
enableAPI: 'SQL'
portMapping: '8081:8081, 8901:8901, 8902:8902, 8979:8979, 10250:10250, 10251:10251, 10252:10252, 10253:10253, 10254:10254, 10255:10255, 10256:10256, 10350:10350'
hostDirectory: '$(Build.BinariesDirectory)azure-cosmosdb-emulator'
Linux的:我使用与@Ricardo相同的
有一个尝试的CosmosDB模拟器linux:这里
它们提供了在linux机器上运行它的命令,我们只是把它们放在一个bash步骤中,以便能够在我们的yaml管道中运行它:
*休眠是为了让模拟器有时间在容器内启动
- bash: |
ipaddr="`ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}' | head -n 1`"
ifconfig | grep "inet " | grep -Fv 127.0.0.1
docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
docker run -p 8081:8081 -p 10251:10251 -p 10252:10252 -p 10253:10253 -p 10254:10254 -m 4g --cpus=2.0 --name=test-linux-emulator -e AZURE_COSMOS_EMULATOR_PARTITION_COUNT=10 -e AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=false -e AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE=$ipaddr -d -it mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
sleep 30
curl -k https://localhost:8081/_explorer/emulator.pem > /tmp/emulatorcert.crt
keytool -cacerts -storepass changeit -noprompt -importcert -alias emulator_cert -file /tmp/emulatorcert.crt
displayName: Install CosmosDB Emulator Docker