You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VS Code开发容器时如何正确读取根目录的requirements.txt?

问题描述

目录结构

app-dash\
  .devcontainer\
     devcontainer.json
     Dockerfile
  app.py
  requirements.txt
  etc.files

需求与遇到的问题

希望Dockerfile中通过以下代码安装依赖:

COPY requirements.txt /tmp/pip-tmp/
RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \
  && rm -rf /tmp/pip-tmp

尝试使用COPY ../requirements.txt /tmp/pip-tmp/后仍报错找不到requirements.txt。

不想将requirements.txt复制到.devcontainer目录(避免文件更新不同步),也不能仅将其放在.devcontainer目录(Azure Functions部署要求该文件位于根目录),同时不想通过命令行执行构建操作,希望在VS Code中点击「Open Folder in Container」即可完成正确构建。

解决方案

修改.devcontainer/devcontainer.json中的构建上下文配置,将Docker构建上下文指定为项目根目录即可解决:

  1. 编辑.devcontainer/devcontainer.json,添加或调整build字段:
{
  "build": {
    "dockerfile": "Dockerfile",
    "context": ".."
  }
  // 保留其他原有配置项
}
  1. 保持Dockerfile中的COPY命令不变:
COPY requirements.txt /tmp/pip-tmp/
RUN pip3 --disable-pip-version-check --no-cache-dir install -r /tmp/pip-tmp/requirements.txt \
  && rm -rf /tmp/pip-tmp

配置完成后,VS Code执行「Open Folder in Container」时会以app-dash目录作为Docker构建上下文,此时Dockerfile能正确读取根目录下的requirements.txt,同时满足Azure Functions的部署要求,也无需复制文件导致同步问题。

内容的提问来源于stack exchange,提问作者Dean MacGregor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:40:46