如何将 dotnet 工具传递给 docker

How to pass dotnet tools in to a docker

我在 root 上使用: dotnet tool install --global dotnet-sonarscanner --version 4.7.1安装sonarscanner 它正在运行:

SonarScanner for MSBuild 4.7.1
Using the .NET Core version of the Scanner for MSBuild
WARNING: Please specify the command 'begin' or 'end' to indicate whether pre- or post-processing is required. These parameters will become mandatory in a later release.
Post-processing started.

但在 docker 中它不是:

root@3bea636a6418:/# dotnet sonarscanner
bash: dotnet: command not found

我试过了:

export PATH="$PATH:/root/.dotnet/tools"

但运气不好

ps。 ...以及所有因为 sonarscanner 在 docker:

上找不到 java
SonarScanner for MSBuild 5.2
Using the .NET Core version of the Scanner for MSBuild
Post-processing started.
Calling the SonarScanner CLI…
Could not find ‘java’ executable in JAVA_HOME or PATH.
The SonarScanner did not complete successfully
14:43:39.402 Post-processing failed. Exit code: 1
Cleaning up file based variables
ERROR: Job failed: exit code 1```

安装 dotnet 工具所需的所有依赖项,ldd 命令可以帮助您完成此操作,并确保也可以找到所需的所有软件,例如可以在 PATH 变量(如果需要)。

帮助您在 docker 容器上使用交互式 bash,如果可行,将其添加到您的 docker 文件中。 docker exec -it (container) bash

docker 图像通常只安装需要的东西,因此您只需将工具添加到 运行 您的软件即可成功。

- apt-get update
- apt-get install --yes openjdk-11-jre     

已解决问题

ps。这不是那么明显,因为在 docker bash 中,当我 运行 java -version 我得到的答案是 java 已经安装