Docker禁止访问DB容器



我有一些问题。我的任务是实现web系统,它将能够编译java maven项目,在引擎盖下测试,并构建一个报告,是否所有的东西都成功完成。

所以我需要一个隔离的容器来在我的服务中运行JUnit测试,以防止被测试的解决方案非法访问我的服务主机。目的是保证一切安全。那么我该怎么做呢?我有docker-compose "cluster"使用一个数据库服务和一个web服务。当我的web服务被请求时(解决方案项目像maven项目文件夹的zip实现一样传递),我创建了一个新的查找容器,其中包含一些连接到该DB服务的util,下载带有解决方案的zip存档,解压缩并执行mvn clean compile,mvn test等。没关系。它还向DB提供了一些关于编译是否成功的信息,以及关于测试的信息。当我在localhost:5432(pg)上用DB测试时,它通过--netwok=host标志工作。即使是dbd容器也可以访问DB。但是当我在docker-compose中运行所有内容并且DB是一个docker-compose服务时,db2容器看不到DB主机。是否可以从DIND容器访问DB服务?也许这是更好的解决办法?

PS:现在我真的想通过卷来实现所有这些东西,但是这种方法有几个明显的缺点。首先,孤独感会减少。第二个问题是,我们还需要将解决方案项目解压缩到web服务的某个地方。但是在哪里?对我来说,它看起来很奇怪:)但它99%有效。还有其他更合适的解决方案吗?谢谢

PPS: sorry for longread.

容器内部localhost是相同的容器。如果你有一个docker-compose,你可以使用服务名来连接到另一个容器。

例如业务dbapp,app可以连接到db:5432

最新更新