Подключите том докера к пути к хосту - PullRequest
0 голосов
/ 23 ноября 2018

Мне нужно получить доступ к файлам результатов теста на хосте из контейнера.Я знаю, что мне нужно создать том, который отображается между хостом и контейнером, как показано ниже, но я ничего не пишу на хост.

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

Что я мог сделать не так?

1 Ответ

0 голосов
/ 23 ноября 2018

Похоже, проблема с разрешением.

-v /codecoveragereports:/app/***/codecoveragereports монтирует каталог под корнем /, что опасно, и у вас может не быть разрешения.

Лучше монтировать локально, например -v $PWD/codecoveragereports:/app/***/codecoveragereports, где $PWD - переменная окружения, равная текущей рабочей директории.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...