如何在Docker测试容器中添加运行参数

问题描述

对于我要与测试容器一起运行的特定图像,需要在构建后像这样启动容器:

docker run \
  -v ~/volume:/tmp/volume\
  --cap-add SYS_NICE --cap-add SYS_RESOURCE --cap-add SYS_PTRACE\
  docker-image

但是我想知道如何将运行时选项--cap-add SYS_NICE --cap-add SYS_RESOURCE --cap-add SYS_PTRACE部分添加到Dockerfile并构建自己的本地副本或使用TestContainer方法,或者甚至可以通过配置docker守护程序来实现?我以为Container.withCommand()做到了这一点,但似乎覆盖了启动命令,据我所知,并没有添加这些运行参数。

解决方法

您可以使用 GenericContainer#withCreateContainerCmdModifier(...),这里是完整示例:

new GenericContainer<>(
            DOCKER_HOST_CONTAINER_NAME
        ).withCreateContainerCmdModifier(
            it -> it.withHostConfig(
                HostConfig.newHostConfig()
                    .withCapAdd(Capability.NET_ADMIN,Capability.NET_RAW)
                    .withNetworkMode(network.getId())
            )
        ).withNetwork(network)
            .withNetworkAliases(dockerHostName)
            .waitingFor(
                Wait.forLogMessage(".*Forwarding ports.*",1)
            )

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...