SpringCloud 工作原理
该图像在/contracts文件夹下搜索合同。运行测试的输出将在/spring-cloud-contract/build文件夹下可用(对于调试目的很有用)。
您安装合同,传递环境变量就足够了,该映像将:
- 生成合同测试
- 针对提供的URL执行测试
- 生成WireMock存根
- (可选-默认情况下处于启用状态)将存根发布到Artifact Manager
Docker映像需要一些环境变量以指向您正在运行的应用程序,工件管理器实例等。
PROJECT_GROUP-您的项目的组ID。默认为com.examplePROJECT_VERSION-您项目的版本。默认为0.0.1-SNAPSHOTPROJECT_NAME-工件ID。默认为exampleREPO_WITH_BINARIES_URL-工件管理器的URL。默认值为http://localhost:8081/artifactory/libs-release-local,这是本地运行的Artifactory的默认URLREPO_WITH_BINARIES_USERNAME-伪影管理器受保护时(可选)的用户名REPO_WITH_BINARIES_PASSWORD-安全工件管理器时的密码(可选)PUBLISH_ARTIFACTS-如果设置为true,则会将工件发布到二进制存储。默认为true。
当合同位于外部存储库中时,将使用这些环境变量。要启用此功能,必须设置EXTERNAL_CONTRACTS_ARTIFACT_ID环境变量。
EXTERNAL_CONTRACTS_GROUP_ID-带有合同的项目的组ID。默认为com.exampleEXTERNAL_CONTRACTS_ARTIFACT_ID-带有合同的项目的工件ID。EXTERNAL_CONTRACTS_CLASSIFIER-带有合同的项目分类。默认为空EXTERNAL_CONTRACTS_VERSION-带有合同的项目版本。默认值为+,相当于选择最新的EXTERNAL_CONTRACTS_REPO_WITH_BINARIES_URL-工件管理器的URL。默认值为REPO_WITH_BINARIES_URLenv var。如果未设置,则默认为http://localhost:8081/artifactory/libs-release-local,这是在本地运行的Artifactory的默认URLEXTERNAL_CONTRACTS_PATH-包含合同的项目内给定项目的合同路径。默认为斜线分隔的EXTERNAL_CONTRACTS_GROUP_ID与/和EXTERNAL_CONTRACTS_ARTIFACT_ID串联在一起。例如,对于组IDfoo.bar和工件IDbaz,将导致foo/bar/baz合同路径。EXTERNAL_CONTRACTS_WORK_OFFLINE-如果设置为true,则将从容器的.m2中检索带有合同的工件。将本地.m2挂载为容器的/root/.m2路径上可用的卷。您不能同时设置EXTERNAL_CONTRACTS_WORK_OFFLINE和EXTERNAL_CONTRACTS_REPO_WITH_BINARIES_URL。
执行测试时使用以下环境变量:
APPLICATION_BASE_URL-应该对其执行测试的URL。请记住,必须可以从Docker容器访问它(例如localhost将不起作用)APPLICATION_USERNAME-(可选)用于对应用程序进行基本身份验证的用户名APPLICATION_PASSWORD-(可选)用于对应用程序进行基本身份验证的密码