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

Docker CLI构建无上下文问题:如何设置上下文使用COPY命令?

问题解决:Docker标准输入构建的上下文配置与非CLI本地构建方法

一、为标准输入构建指定上下文,让COPY命令正常工作

当你用docker build -t tagname - < Dockerfile时,确实没有默认构建上下文,导致COPY命令无法访问本地文件。解决方法是在命令末尾指定上下文目录,同时用-f -指定从标准输入读取Dockerfile:

docker build -t tagname -f - ./your-context-dir < Dockerfile
  • 其中./your-context-dir是你的构建上下文路径(比如当前目录就写.),Docker会将这个目录下的所有文件作为构建上下文,这样COPY命令就能正常引用该目录内的文件了。
  • 实际例子:如果你的Dockerfile和要复制的文件都在当前目录,命令就是:
docker build -t my-app -f - . < Dockerfile

二、除了CLI之外的本地构建方式

1. Docker Desktop图形界面

Windows/macOS用户打开Docker Desktop,进入左侧「Images」页面,点击顶部的「Build」按钮:

  • 选择Dockerfile所在的目录(该目录会被作为构建上下文)
  • 输入镜像标签,点击「Build」即可完成构建。

2. Docker Compose

如果项目用Docker Compose管理,只需在docker-compose.yml中配置build字段:

version: '3.8'
services:
  your-service:
    build:
      context: ./path/to/context  # 指定构建上下文目录
      dockerfile: ./path/to/Dockerfile  # 若Dockerfile不在上下文根目录,需指定路径
    image: your-image:latest

然后在终端执行:

docker compose build

Compose会自动处理上下文和构建流程,适合多服务项目。

3. IDE集成插件

以VS Code的Docker插件为例:

  • 右键点击项目中的Dockerfile文件
  • 选择「Build Image」选项
  • 在弹出的输入框中填写镜像标签,插件会自动以当前目录为上下文触发构建,无需手动输入CLI命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 22:33:09