如何使用Ubuntu在Azure devops中运行cosmos模拟器?

问题描述 投票:0回答:2

如何使用 spring boot 集成测试(java)在 Azure devops 中运行 Azure cosmos DB 模拟器?

目前cosmos DB模拟器仅支持Windows server不支持linux?

有什么建议如何继续吗?

更新:1 对于 Windows 构建代理,可以使用来自 azure pipelines 的以下任务。

- 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

相同
java spring-boot azure-devops azure-pipelines azure-cosmosdb
2个回答
3
投票

有针对linux的CosmosDB模拟器的尝试:这里

它们提供了在 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

0
投票

我写了一篇关于使用 TestcontainersCosmos DB Docker 模拟器运行 Spring Boot 应用程序集成测试的博客文章。

https://tech.asimio.net/2024/02/28/Cosmos-DB-Spring-Boot-2-Integration-Tests-Testcontainers.html

它还将 Cosmos DB 自签名证书添加到集成测试使用的临时信任库,从而防止使用 keytool 手动将证书添加到信任库。

这是一篇很长的博客文章,在这里放置片段和解释。

代码片段可能会让您开始或完成您的代码片段。

它不涵盖 Azure Devops,但测试使用简单的 Maven 命令运行:

mvn clean verify

© www.soinside.com 2019 - 2024. All rights reserved.