我非常拼命地尝试在 Scala 中设置 docker 测试。
我在 GitHub 上创建了一个示例项目,以了解我应该如何设置环境。它可以在这里找到:https ://github.com/atais/sbt-scala-docker-cassandra
我选择了spotify/cassandra:latest
图片https://github.com/spotify/docker-cassandra。
由于我使用的是 ScalaTest,因此我想使用其中一个 Scala 包装器,但两者都失败了。
1. https://github.com/whisklabs/docker-it-scala
容器定义为:
val cassandraContainer: DockerContainer = DockerContainer("spotify/cassandra:latest")
.withPorts(9042 -> None, 9060 -> None)
它CassandraDockerTest
在项目中。
2. https://github.com/testcontainers/testcontainers-scala
容器定义为:
override val container = GenericContainer(
"spotify/cassandra:latest",
exposedPorts = Seq(9042, 9160)
)
它CassandraContainerTest
在项目中。
我的假设
似乎是一个问题(在这两种情况下)是容器启动,但端口永远无法访问:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7cb5fc91a97d spotify/cassandra:latest "cassandra-singlenode" 3 seconds ago Up 2 seconds 0.0.0.0:33121->22/tcp, 0.0.0.0:33120->7000/tcp, 0.0.0.0:33119->7001/tcp, 0.0.0.0:33118->7199/tcp, 0.0.0.0:33117->8012/tcp, 0.0.0.0:33116->9042/tcp, 0.0.0.0:33115->9160/tcp, 0.0.0.0:33114->61621/tcp quirky_chandrasekhar
而且我希望9042
并且9160
可以在 上使用0.0.0.0
,并且由于某种原因,它们不是,即使指定了它们的配置。
谢谢!