【发布时间】:2020-07-30 04:12:35
【问题描述】:
我正在尝试将可执行的初始化 bash 脚本 init.sh 复制到使用 JUnit 5 模块使用 Testcontainers (1.13.0) 创建的 Localstack Docker 容器:
@Container
static LocalStackContainer localStack = new LocalStackContainer("0.10.0")
.withServices(S3)
.withCopyFileToContainer(MountableFile.forClasspathResource("init.sh"), "/docker-entrypoint-initaws.d/init.sh");
但是在创建的 Docker 容器中,该文件缺少执行权限(通过使用docker exec -it ID /bin/sh 查看文件权限进行检查)。
在我的机器上,该文件具有以下权限:
$ ls -al
total 16
drwxr-xr-x 4 xyz staff 128 Apr 16 20:51 .
drwxr-xr-x 4 xyz staff 128 Apr 16 08:43 ..
-rw-r--r-- 1 xyz staff 135 Apr 16 20:14 application.yml
-rwxr-xr-x 1 xyz staff 121 Apr 16 20:51 init.sh
我也尝试使用.withClasspathResourceMapping() 复制此文件,但这需要一种仅提供READ_ONLY 或READ_WRITE 的绑定模式。
【问题讨论】:
标签: java docker junit5 testcontainers localstack