如何解决测试容器 execInContainer 不适用于 CockroachDB
我正在使用 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';"
但是当我尝试使用 Testcontainers 运行相同的命令时:
container.execInContainer(
"./cockroach sql --insecure -e \"SET CLUSTER SETTING sql.defaults.experimental_temporary_tables.enabled = 'true';\"" );
我有以下错误:
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
请注意,错误通过 Container.ExecResult#getStdout()
可见。
退出代码是 126
我正在使用 Testcontainers 1.15.2
和 CockroachDB v20.2.5
谢谢
解决方法
container.execInContainer( "sh","-c","./cockroach sql --insecure -e \"SET CLUSTER SETTING sql.defaults.experimental_temporary_tables.enabled = 'true';\"" );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。