Testcontainers execInContainer 不适用于 CockroachDB

Dav*_*lto 2 cockroachdb testcontainers

我正在使用 Testcontainers 通过 docker 启动 CockroachDB 实例。我需要通过将该属性设置sql.defaults.experimental_temporary_tables.enabled为 true 来启用对临时表的支持。

当机器运行时,我可以这样做:

docker exec -it CockroachDBHibernate ./cockroach sql --insecure -e "SET CLUSTER SETTING sql.defaults.experimental_temporary_tables.enabled = 'true';"
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用 Testcontainers 运行相同的命令时:

container.execInContainer(
                    "./cockroach sql --insecure -e \"SET CLUSTER SETTING sql.defaults.experimental_temporary_tables.enabled = 'true';\"" );
Run Code Online (Sandbox Code Playgroud)

我有以下错误:

OCI runtime exec failed: exec failed: container_linux.go:370: starting container process caused: exec: "./cockroach sql --insecure -e \"SET CLUSTER SETTING sql.defaults.experimental_temporary_tables.enabled = 'true';\"": stat ./cockroach sql --insecure -e "SET CLUSTER SETTING sql.defaults.experimental_temporary_tables.enabled = 'true';": no such file or directory: unknown
Run Code Online (Sandbox Code Playgroud)

请注意,该错误可通过 看到Container.ExecResult#getStdout()。退出代码是 126

我正在使用 Testcontainers1.15.2和 CockroachDBv20.2.5

谢谢

Dav*_*lto 6

 container.execInContainer( "sh", "-c", "./cockroach sql --insecure -e \"SET CLUSTER SETTING sql.defaults.experimental_temporary_tables.enabled = 'true';\"" );
Run Code Online (Sandbox Code Playgroud)