如何使 Dockerfile COPY 适用于 Windows 绝对路径?

mak*_*aki 6 dockerfile docker-for-windows

如何使COPY命令适用于 Windows 上的绝对路径?我尝试使用 git-bash、cmd 和 powershell 控制台进行构建docker build -t custom-maven-image .

# Dockerfile
FROM maven:3-openjdk-11-slim
# these are three versions of copy command I tried
COPY C:/Users/myuser/.m2 /root/.m2
COPY /C/Users/myuser/.m2 /root/.m2
COPY /c/Users/myuser/.m2 /root/.m2
Run Code Online (Sandbox Code Playgroud)

我得到的是一个错误:

...
#5 ERROR: "/C/Users/myuser/.m2" not found: not found
Run Code Online (Sandbox Code Playgroud)

更新:

谢谢@Jeremy 的错误参考,现在我看到文档清楚地说:

COPY 遵循以下规则:

该路径必须位于构建的上下文内;你不能 COPY ../something /something,因为 docker 构建的第一步是将上下文目录(和子目录)发送到 docker 守护进程。

Jer*_*emy 4

所有资源都需要位于您运行构建的目录中,即 Dockerfile 所在的位置。你不能使用其他地方的绝对路径,从构建的角度考虑它——构建发生在哪里——在 Dockerfile 中?它可以运行命令,但这些资源需要公开。