gpt4 book ai didi

docker - 将 docker 卷挂载到主机路径

转载 作者:行者123 更新时间:2023-12-02 08:18:46 24 4
gpt4 key购买 nike

我需要从容器访问主机中的测试结果文件。我知道我需要创建一个在主机和容器之间映射的卷,如下所示,但我没有收到任何写入主机的信息。

docker run --rm -it -v <host_directory_path>:<container_path> imagename

Dockerfile:

FROM microsoft/dotnet:2.1-sdk AS builder
WORKDIR /app
COPY ./src/MyApplication.Program/MyApplication.Program.csproj ./src/MyApplication.Program/MyApplication.Program.csproj
COPY nuget.config ./
WORKDIR ./src/MyApplication.Program/
RUN dotnet restore
WORKDIR /app
COPY ./src ./src
WORKDIR ./src/MyApplication.Program/
RUN dotnet build MyApplication.Program.csproj -c Release

FROM builder as tester
WORKDIR /app
COPY ./test/MyApplication.UnitTests/MyApplication.UnitTests.csproj ./test/MyApplication.UnitTests/MyApplication.UnitTests.csproj
WORKDIR ./test/MyApplication.UnitTests/
RUN dotnet restore
WORKDIR /app
COPY ./test ./test
WORKDIR ./test/MyApplication.UnitTests/
RUN dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura
ENTRYPOINT ["dotnet", "reportgenerator", "-reports:coverage.cobertura.xml", "-targetdir:codecoveragereports", "-reportTypes:htmlInline"]

入口点的命令工作正常。它将输出写入 MyApplication.UnitTests/codecoveragereports 目录,但不写入主机目录。

我的 docker 运行如下所示:

docker run --rm -it -v /codecoveragereports:/app/test/MyApplication.UnitTests/codecoveragereports routethink.tests:latest

我可能做错了什么?

最佳答案

看起来像是权限问题。

-v/codecoveragereports:/app/***/codecoveragereports 正在根 / 下挂载一个目录,这是危险的,您可能没有权限。

最好在本地挂载,例如 -v $PWD/codecoveragereports:/app/***/codecoveragereports,其中 $PWD 是一个环境变量,等于当前工作目录。

关于docker - 将 docker 卷挂载到主机路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53447174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com