【问题标题】:Can not copy files properly to docker image无法将文件正确复制到 docker 映像
【发布时间】:2018-12-16 21:19:20
【问题描述】:

您好,我正在尝试在 docker image 中重新创建我的主机文件夹,其中包含:

  • 发布(包含.NET app 的文件夹)
  • 码头文件
  • conf.json

dockerfile

FROM microsoft/aspnetcore 
WORKDIR /app
ADD . /app
ENTRYPOINT ["dotnet","/publish/Bench.dll"]
EXPOSE 8300

当我试图查看它使用docker exec -it <id> bash 创建的内容时,它只获取publish 的所有内容并将其放入app 而不复制conf.json

我也试过
COPY . /app,
COPY /publish /app+COPY conf.json /app 无济于事。 无论我在尝试什么,它都不会复制文件夹 as-is 并且不会将 json 文件放在它旁边。

我做错了什么?

【问题讨论】:

  • 您的所有文件都在您主机的/app 中吗?
  • 主机中的文件夹和我发布的一样。它有publish目录,dockerfile和我要复制的json文件。
  • 主机上文件夹的绝对路径是什么?
  • 这是绝对路径:C:\Project\builds\bench\backend\publish。它确实复制了publish 文件夹和dockerfile,但不复制json

标签: docker dockerfile docker-image


【解决方案1】:

所以我对此进行了测试。我将发布文件夹 dockerfile 和 conf.json 放在构建映像的同一目录中。那是关键。这里我使用 nginx 作为我的基础镜像。以下是我用来构建nginx镜像的命令

docker build -t test/nginx .

dockerfile 如下。所以我使用 RUN 命令创建了应用程序目录。如果该目录不存在,您将不得不在 .net 中使用类似的命令来创建该目录。还要注意 docker build 日志。它会告诉你重要的事情。如果你愿意,你也可以在 dockerfile 中添加一个 ls 命令来列出文件夹/app 中的文件。

FROM nginx
RUN mkdir /app
WORKDIR /app
ADD . /app

从我构建的图像创建容器后,我可以导航到 /app 文件夹并查看我的 Dockerfile、config.json 和发布文件夹。希望这可以帮助 如果您有任何问题,请告诉我

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多