docker build构建.devcontainer报requirements.txt不存在错误
Docker构建devcontainer镜像失败原因及解决方案
报错根因说明
- 第一条命令
docker build -t proj:myapp /.devcontainer提示路径不存在:PowerShell中路径开头的/指向当前盘符根目录(即C盘根目录),命令实际查找的是C:/.devcontainer路径,该路径不存在自然触发报错。 - 第二条命令执行到COPY步骤提示
requirements.txt找不到:Docker的COPY指令仅能读取构建上下文(build context)目录内的文件,你第二条命令把构建上下文设置为C:/LearbayDatascience/.devcontainer,但requirements.txt存放在项目根目录C:/LearbayDatascience下,不在指定的构建上下文范围内,Docker无法读取到该文件。 - VS Code自带重建devcontainer功能可正常运行的原因:VS Code启动开发容器时,默认将整个项目根目录作为构建上下文,同时自动定位
.devcontainer下的Dockerfile文件,因此可以正常读取到根目录下的依赖文件。
可直接复用的解决方法
在项目根目录C:\LearbayDatascience路径下执行如下构建命令即可:
docker build -t proj:myapp -f ./.devcontainer/Dockerfile .
参数说明:
- 命令末尾的
.代表将当前所在的项目根目录设置为Docker构建上下文,确保Docker可以读取到根目录下的requirements.txt -f ./.devcontainer/Dockerfile显式指定构建使用的Dockerfile存放在.devcontainer文件夹下,解决Dockerfile不在上下文根目录的识别问题
不推荐将
requirements.txt移动到.devcontainer目录的方案,会打乱项目配置文件和业务文件的目录结构。
内容的提问来源于stack exchange,提问作者Sangita Paul
相关产品推荐
相关产品推荐

