我的docker容器在本地网络中运行,名为my_local_network.为确保网络存在,每个构建脚本都以以下内容开头:
docker network create --driver bridge my_local_network
Run Code Online (Sandbox Code Playgroud)
这很好用.如果网络不存在,则创建它,如果没有,则不会发生任何事情.除了错误消息:
Error response from daemon: network with name my_local_network already exists
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉docker只创建网络,如果它不存在?
docker container ls -f name=foo返回名称包含foo的所有容器.这意味着它还返回一个名为的容器foobar.如何过滤所有名为foo的容器?
在我的项目中,有几个 Dockerfile。由于它们位于同一文件夹中,因此不能全部命名为 Dockerfile。PyCharm 仅将名为 Dockerfile 的文件设置为 Dockerfile。例如,Dockerfile_1 没有样式设置,也没有检查。
import groovy.transform.CompileStatic
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.MethodSource
import java.util.stream.Stream
import static org.assertj.core.api.Assertions.assertThat
@CompileStatic
class MyUnitTest {
@ParameterizedTest(name = "{index} => myString={0}")
@MethodSource("provideData")
void test(String myString) {
assertThat("hallo").isEqualTo(myString)
}
private static Stream<Arguments> provideData() {
return Stream.of(
Arguments.of("hallo"))
}
}
Run Code Online (Sandbox Code Playgroud)
运行这个 JUnit 5 测试给了我以下错误:方法
org.junit.jupiter.params.provider.Arguments.of([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments; 必须是 InterfaceMethodref 常量 java.lang.IncompatibleClassChangeError: Method org.junit.jupiter.params.provider.Arguments.of([Ljava/lang/Object;)Lorg/junit/jupiter/params/provider/Arguments; 必须是 InterfaceMethodref 常量
我使用 Java 10,并且在 build.gradle 中启用了 JUnit 5。