确定 docker 中的操作系统类型

ir2*_*pid 6 bash android amazon-web-services docker dockerfile

我想根据我的 docker 映像运行的操作系统类型下载 sdk。如何在 docker 脚本中编写以下伪代码

RUN variable x = getOS()
if [ "$x" = "Darwin" ]; then
     RUN wget -q http://xxx/android-ndk-xxxx-darwin-x86_64.bin
else
     RUN wget -q http://xxx/android-ndk-xxxx-linux-x86_64.bin
Run Code Online (Sandbox Code Playgroud)

hni*_*cke 4

使用uname命令。

x=$(uname)
Run Code Online (Sandbox Code Playgroud)

在达尔文系统上,它应该输出Darwin.

在您的 dockerfile 中,RUN 命令可能如下所示:

RUN [ "$(uname)" = Darwin ] && system=darwin || system=linux; \
    wget -q http://xxx/android-ndk-xxxx-${system}-x86_64.bin
Run Code Online (Sandbox Code Playgroud)

或者像这样(为了支持任意系统):

RUN system=$(uname); \
    wget -q http://xxx/android-ndk-xxxx-${system,}-x86_64.bin
Run Code Online (Sandbox Code Playgroud)