@Container
static LocalStackContainer localStack = new LocalStackContainer("0.10.0")
.withServices(S3)
.withCopyFileToContainer(MountableFile.forClasspathResource("init.sh"), "/docker-entrypoint-initaws.d/init.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
。
您可以使用mountablefile
类的另一个生成器,它使用带有posix文件模式值的mode
参数来更改权限。例如,使脚本仅对所有者可执行:
...
.withCopyFileToContainer(MountableFile.forClasspathResource("init.sh", 0744), "/docker-entrypoint-initaws.d/init.sh");
0744
是八进制文件模式文字,对应于-rwxr--r--
权限。
然而,我尝试了与Localstack0.10.8
相同的配置,初始化工作甚至没有使脚本可执行。
我有一个,其中我将现有目录(包含内容)复制到工作正常的容器: Dockerfile 但当我使用文件中只有目录,而在中没有任何内容。 docker-compose.yml: 也许我不明白的功能,如果是这种情况,请告诉我如何通过文件将现有文件复制到容器。
我知道,有可能通过在主机和docker容器之间双向复制文件,也有可能通过docker-py从正在运行的容器中获取文件。但是我不知道如何使用docker-py将文件从主机复制到运行容器。你们有遇到过这种问题吗?是否可以或者我必须使用python执行命令。我想避免这种解决方案。
我正在使用docker容器来编译一段代码,我不一定要将其docker化。我已使用必要的构建工具设置了一个映像,但我希望以某种方式将编译后的文件从容器中取出,而无需使用docker cp container:/file host/file命令。换句话说,我希望自动化这个过程,以便在构建完成后,将生成的文件复制到主机。 Dockerfile
我有一个docker映像,它有所有需要的文件,当我说docker运行时,我希望它将docker映像中的文件夹的内容复制到主机目录。之后不再需要docker并停止
我正在从docker容器中运行elasticsearch。 在为ssl和屏蔽配置elasticsearch时,我的文件获得非法条目,即而不是。 现在我的docker容器没有启动,并出现以下错误: 如何在不丢失数据的情况下编辑或替换它,或替换现有容器中的文件?