jip*_*pot 5 docker docker-compose
我在将文件从docker容器内部写入主机时遇到问题.我相信这是一个特权问题,不愿意设置privileged: True.写出文件的工作是预先挂起../到我docker-compose.yml文件中的卷.例如,
version: '3'
services:
example:
volumes:
- ../:/example
Run Code Online (Sandbox Code Playgroud)
到底在../做什么?是从容器的权限和"上升"目录到主机?没有../,我无法将文件写入我的主机.
除非您将更高的目录指定为上下文,否则docker build命令只能访问它所在的目录,而不是更高的目录.
要从父目录运行docker build:
docker build -f /home/me myapp/Dockerfile
Run Code Online (Sandbox Code Playgroud)
在作曲家中做同样的事情:
#docker-compose.yml
version: '3.3'
services:
yourservice:
build:
context: /home/me
dockerfile: myapp/Dockerfile
Run Code Online (Sandbox Code Playgroud)
或者用你的例子:
version: '3'
services:
build:
context: /home/me/app
dockerfile: docker/Dockerfile
example:
volumes:
- /home/me/app:/example
Run Code Online (Sandbox Code Playgroud)
此外,您必须提供完整路径,而不是相对路径.IE浏览器.
- /home/me/myapp/files/example:/example
Run Code Online (Sandbox Code Playgroud)
如果您有一个从未知路径生成Dockerfile的脚本,您可以使用:
CWD=`pwd`; echo $CWD
Run Code Online (Sandbox Code Playgroud)
引用当前工作目录.从那里你可以追加..
或者,您可以从一个目录构建映像,或者使用可以与从更高目录运行的映像共享的卷,或者您需要将文件输出到stdout并将命令的输出重定向到文件你需要从运行它的脚本.
另请参阅:Docker:从父目录添加文件
| 归档时间: |
|
| 查看次数: |
9782 次 |
| 最近记录: |