SpringCloud 工作原理

2023-12-10 21:53 更新

該圖像在/contracts文件夾下搜索合同。運行測試的輸出將在/spring-cloud-contract/build文件夾下可用(對于調(diào)試目的很有用)。

您安裝合同,傳遞環(huán)境變量就足夠了,該映像將:

  • 生成合同測試
  • 針對提供的URL執(zhí)行測試
  • 生成WireMock存根
  • (可選-默認(rèn)情況下處于啟用狀態(tài))將存根發(fā)布到Artifact Manager

環(huán)境變量

Docker映像需要一些環(huán)境變量以指向您正在運行的應(yīng)用程序,工件管理器實例等。

  • PROJECT_GROUP-您的項目的組ID。默認(rèn)為com.example
  • PROJECT_VERSION-您項目的版本。默認(rèn)為0.0.1-SNAPSHOT
  • PROJECT_NAME-工件ID。默認(rèn)為example
  • REPO_WITH_BINARIES_URL-工件管理器的URL。默認(rèn)值為http://localhost:8081/artifactory/libs-release-local,這是本地運行Artifactory的默認(rèn)URL
  • REPO_WITH_BINARIES_USERNAME-偽影管理器受保護(hù)時(可選)的用戶名
  • REPO_WITH_BINARIES_PASSWORD-安全工件管理器時的密碼(可選)
  • PUBLISH_ARTIFACTS-如果設(shè)置為true,則會將工件發(fā)布到二進(jìn)制存儲。默認(rèn)為true。

當(dāng)合同位于外部存儲庫中時,將使用這些環(huán)境變量。要啟用此功能,必須設(shè)置EXTERNAL_CONTRACTS_ARTIFACT_ID環(huán)境變量。

  • EXTERNAL_CONTRACTS_GROUP_ID-帶有合同的項目的組ID。默認(rèn)為com.example
  • EXTERNAL_CONTRACTS_ARTIFACT_ID-帶有合同的項目的工件ID。
  • EXTERNAL_CONTRACTS_CLASSIFIER-帶有合同的項目分類。默認(rèn)為空
  • EXTERNAL_CONTRACTS_VERSION-帶有合同的項目版本。默認(rèn)值為+,相當(dāng)于選擇最新的
  • EXTERNAL_CONTRACTS_REPO_WITH_BINARIES_URL-工件管理器的URL。默認(rèn)值為REPO_WITH_BINARIES_URL env var。如果未設(shè)置,則默認(rèn)為http://localhost:8081/artifactory/libs-release-local,這是在本地運行Artifactory的默認(rèn)URL
  • EXTERNAL_CONTRACTS_PATH-包含合同的項目內(nèi)給定項目的合同路徑。默認(rèn)為斜線分隔的EXTERNAL_CONTRACTS_GROUP_ID/EXTERNAL_CONTRACTS_ARTIFACT_ID串聯(lián)在一起。例如,對于組ID foo.bar和工件ID baz,將導(dǎo)致foo/bar/baz合同路徑。
  • EXTERNAL_CONTRACTS_WORK_OFFLINE-如果設(shè)置為true,則將從容器的.m2中檢索帶有合同的工件。將本地.m2掛載為容器的/root/.m2路徑上可用的卷。您不能同時設(shè)置EXTERNAL_CONTRACTS_WORK_OFFLINEEXTERNAL_CONTRACTS_REPO_WITH_BINARIES_URL。

執(zhí)行測試時使用以下環(huán)境變量:

  • APPLICATION_BASE_URL-應(yīng)該對其執(zhí)行測試的URL。請記住,必須可以從Docker容器訪問它(例如localhost將不起作用)
  • APPLICATION_USERNAME-(可選)用于對應(yīng)用程序進(jìn)行基本身份驗證的用戶名
  • APPLICATION_PASSWORD-(可選)用于對應(yīng)用程序進(jìn)行基本身份驗證的密碼
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號