首页 新闻 会员 周边 捐助

Docker COPY 命令复制多个文件的问题

0
悬赏园豆:30 [已解决问题] 解决于 2023-06-24 18:25

目前 Dockerfile 中采用的是一个文件 COPY 命令

COPY ["src/Cnblogs.WebWithApi.Domain/Cnblogs.WebWithApi.Domain.csproj", "src/Cnblogs.WebWithApi.Domain/"]
COPY ["src/Cnblogs.WebWithApi.Infrastructure/Cnblogs.WebWithApi.Infrastructure.csproj", "src/Cnblogs.WebWithApi.Infrastructure/"]
COPY ["src/Cnblogs.WebWithApi.Application/Cnblogs.WebWithApi.Application.csproj", "src/Cnblogs.WebWithApi.Application/"]
COPY ["src/Cnblogs.WebWithApi.Api/Cnblogs.WebWithApi.Api.csproj", "src/Cnblogs.WebWithApi.Api/"]

有没有什么方法通过一个 COPY 命令复制所有的 .csproj 文件?

dudu的主页 dudu | 高人七级 | 园豆:29642
提问于:2023-06-23 22:06

stackoverflow 上的相关问题:Docker COPY files using glob pattern?

dudu 1年前
< >
分享
最佳答案
0

通过下面的指令解决了

COPY ["src/**/*.csproj", "src/"]
RUN find -name "*.csproj" -execdir sh -c 'name=$(basename $1 .csproj) && mkdir $name && mv $name.csproj $name/$name.csproj' sh {} ';'
  • 第1行指令:将 src 目录的所有子目录中的 .csproj 文件复制到容器的 src 目录中
  • 第2行指令:将容器中 src 目录中的所有 .csproj 文件移至对应的子目录,比如 Cnblogs.WebWithApi.Api.csproj 移至 Cnblogs.WebWithApi.Api/Cnblogs.WebWithApi.Api.csproj

参考:

dudu | 高人七级 |园豆:29642 | 2023-06-24 18:23
其他回答(1)
0

假设您的所有.csproj文件都在src目录下,您可以使用以下命令将该目录下的所有.csproj文件复制到容器中:

COPY src/*.csproj /app/

这个命令会将src目录下的所有.csproj文件复制到容器的/app目录下。

收获园豆:30
lanedm | 园豆:2396 (老鸟四级) | 2023-06-24 09:55

不仅需要复制 .csproj 文件,还需要复制到对应的子目录中,比如 Cnblogs.WebWithApi.Domain.csproj 复制到 Cnblogs.WebWithApi.Domain/ 子目录中

支持(0) 反对(0) dudu | 园豆:29642 (高人七级) | 2023-06-24 10:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册