问题
我试图启动本地堆栈容器,以便在特定端口上公开SSM系统。但是,根据我读过的医生,我应该能够在环境中指定SSM_PORT_EXTERNAL;这似乎不起作用。
我试过什么
在我的gradle文件中,我尝试了以下操作:
test {
// AWS Properties for tests
systemProperty 'SSM_PORT_EXTERNAL', '22680'
useJUnitPlatform()
...
}在容器的启动代码中,我也尝试过
static final LocalStackContainer INSTANCE = new AwsTestContainer()
.withServices(SSM, S3)
.withEnv(SSM_PORT_EXTERNAL, "22680")
.withStartupAttempts(3)
.withStartupTimeout(Duration.ofSeconds(60L));AWSTestContainer扩展LocalStackContainer
在这两种情况下,本地堆栈都启动了,但忽略了我指定的端口,因为SSM客户端无法连接到端口22680,所以我会得到错误。从日志来看,LocalStack似乎仍在“55003”端口上启动。
12:22:16.526测试工作者调试org.testcontainers.shaded.com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: org.testcontainers.shaded.com.github.dockerjava.core.command.CreateContainerCmdImpl@66a7cb59[name=,hostName=、domainName=、user=、attachStdin=、attachStdout=、attachStderr=、portSpecs=、tty=、stdinOpen=、stdInOnce=、env={HOSTNAME_EXTERNAL=localhost、SERVICES=ssm、s3 }、s3{}、s3、en2 20#、en21#、en22#、,exposedPorts=com.github.dockerjava.api.model.ExposedPorts@10cdb47a,onBuild=,networkDisabled=,stopSignal=,stopTimeout=,En24#,[],[],(,),#en39,#en40,,#en42,#en43,#44[]、、)、{en31#、、en37#、、#en39)]
版本
Spring : 2.4.1使用JUnit 5
LocalStack:最新版本(DEFAULT_TAG是LocalStackContainer.java中的“0.11.2”)
IntelliJ: 2020.3
等级: 6.7.1
Gradle 6.7.1构建时间: 2020-11-16 17:09:24 UTC修订版:2972ff02f3210d2 ceed2f1e880f026acfbab5c0
Kotlin: 1.3.72
Groovy: 2.5.12
Ant: Apache Ant(TM)版本1.10.8,于2020年5月10日编译
JVM: 15.0.1 (AdoptOpenJDK 15.0.1+9)
操作系统: Mac 10.15.7 x86_64
发布于 2021-05-17 08:01:57
对于本地堆栈,我们还需要设置环境变量来指定在哪里启动服务。就像在码头一样,我们使用yaml配置。春季启动:尝试类似的
.withEnv("DEFAULT_REGION","eu-central-1")
.withEnv("EDGE_PORT","4576")
.withEnv("SQS_PORT_EXTERNAL","4576")
.withServices(LocalStackContainer.Service.SQS);https://stackoverflow.com/questions/65942600
复制相似问题