如何在MyProject子目录的Dockerfile中访问父目录的Utils与Auth内容?
如何让MyProject里的Dockerfile访问上级的Utils和Auth目录
核心思路是把主项目根目录作为Docker的构建上下文,同时指定MyProject里的Dockerfile路径,这样就能在Dockerfile里直接引用上级目录的内容了,不用移动Dockerfile。
具体操作
在主项目根目录执行构建命令
打开终端,切换到包含Utils、Auth、MyProject这三个文件夹的主项目根目录,运行下面的命令:docker build -t 你的镜像名称 -f ./MyProject/Dockerfile .参数说明:
-t用来给镜像命名,替换成你需要的名称即可-f指定Dockerfile的具体位置,这里指向MyProject文件夹内的Dockerfile- 最后的
.代表将当前目录(主项目根目录)设为构建上下文,这样Docker就能识别到上级的Utils和Auth目录
在Dockerfile里引用Utils和Auth
此时Dockerfile可以直接通过相对路径复制这两个目录的内容,示例如下:# 复制Utils目录到镜像指定路径 COPY ./Utils /app/Utils # 复制Auth目录到镜像指定路径 COPY ./Auth /app/Auth # 复制MyProject自身代码到镜像 COPY ./MyProject /app
避坑提醒
- 不要在MyProject目录下直接执行
docker build .,否则构建上下文仅包含MyProject内的内容,无法访问上级的Utils和Auth。 - 如果有不需要纳入构建上下文的文件,可在主项目根目录创建
.dockerignore文件,写入对应路径来减少镜像体积。
内容的提问来源于stack exchange,提问作者Ishaan Kanwar
相关产品推荐
相关产品推荐

