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

如何将本地桌面的文件添加或复制到Dockerfile构建流程中

操作步骤

Docker 构建过程仅能访问构建上下文(即你执行docker build命令时指定的目录)内的文件,无法直接读取系统桌面这类上下文外的路径,因此可按以下两种方案操作:

方案一(推荐:构建性能更好)

  • 第一步:将桌面上的file.txt手动移动/复制到和你当前Dockerfile同级的目录下
  • 第二步:替换Dockerfile中# COPY ...注释行为以下内容,即可把文件复制到镜像内的/app工作目录:
COPY file.txt ./

如果你需要把文件放到镜像内的其他路径,比如/config/file.txt,直接修改目标路径即可:

COPY file.txt /config/

方案二(无需移动原文件)

如果你不想改动桌面上file.txt的位置,可以在执行构建命令时指定桌面为构建上下文:

  • 假设你的Dockerfile存放在/home/你的用户名/project/目录下,直接打开终端执行以下命令即可:
# 先切换到桌面目录
cd ~/Desktop
# 指定Dockerfile路径执行构建
docker build -f /home/你的用户名/project/Dockerfile -t 你的镜像名 .
  • Dockerfile的COPY指令还是和方案一一致,写COPY file.txt ./即可。

注意事项

你当前把COPY指令放在最终的runtime阶段是完全正确的:如果file.txt仅在程序运行时使用,不需要放到上方的build-env构建阶段,这样可以避免额外占用镜像空间。

修改后完整Dockerfile示例

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build-env

WORKDIR /app

COPY *.csproj ./
RUN dotnet restore

COPY . ./
RUN dotnet publish -c Release -o out

FROM mcr.microsoft.com/dotnet/core/runtime:3.1-buster-slim
WORKDIR /app
COPY --from=build-env /app/out ./
# 复制file.txt到镜像的/app目录
COPY file.txt ./

RUN useradd -ms /bin/bash moduleuser
USER moduleuser

ENTRYPOINT ["dotnet", "csharpexamplemodule.dll"]

验证方法

构建完成后可执行以下命令,确认文件是否成功复制到镜像内:

docker run --rm --entrypoint ls 你的镜像名 /app

输出结果里能看到file.txt就说明操作成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:18:03