Docker 容器 returns "unknown" 用于 "uname -p" 命令
Docker container returns "unknown" for "uname -p" command
我刚刚安装了一个全新的 Ubuntu Server 14.04.2 LTS 并且还安装了 docker 到 运行 容器。我正面临一些问题。容器将用于 运行 Jenkins 及其一些作业 运行s 脚本以安装 Android NDK/SDK。这些脚本使用 uname -p
命令检查当前机器的平台。此命令 运行 在主机上运行良好,但在容器中 returns unknown
如下所示:
lemonade@olympus:/$ docker info
Containers: 14
Images: 171
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 199
Execution Driver: native-0.2
Kernel Version: 3.16.0-38-generic
WARNING: No swap limit support
lemonade@olympus:/$ uname -a
Linux olympus 3.16.0-38-generic #52~14.04.1-Ubuntu SMP Fri May 8 09:43:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
lemonade@olympus:/$ uname -p
x86_64
lemonade@olympus:/$ docker run -ti java:7 /bin/bash
root@c6cdbb8a64fb:/# uname -p
unknown
root@c6cdbb8a64fb:/# uname -a
Linux c6cdbb8a64fb 3.16.0-38-generic #52~14.04.1-Ubuntu SMP Fri May 8 09:43:57 UTC 2015 x86_64 GNU/Linux
有谁知道为什么容器会返回这个?一些脚本(不是我们编写的)使用它,还有很多 makefile。
谢谢!
我不知道 uname -p
使用 java:7
docker 图像失败的确切原因,但这似乎是由于 docker debian
图片。 ubuntu
docker 图像,一切正常。
$ docker run debian uname -p
unknown
$ docker run ubuntu uname -p
x86_64
如果您查看 java:7
docker 图像的 Dockerfile 依赖项,您会发现以下内容:java:7
→buildpack-deps:jessie-scm
→buildpack-deps:jessie-curl
→debian:jessie
唯一破坏 uname -p
的是对 debian:jessie
的依赖。可以做的是构建自己的 java:7
docker 图像,但使其依赖于 ubuntu
而不是 debian
。
为此,您必须想出一个 Dockerfile,它是用于制作 java:7
图像的文件的合并。
对于很多 linux 发行版,uname -p
似乎设置为 unknown。
虽然您不控制这些脚本和制作文件,但您可能希望向上游提交错误报告,建议他们更改代码以使用 uname -m
,而不是如果他们试图检测 x86_64
,armv7l
、armv6l
、等等
我刚刚安装了一个全新的 Ubuntu Server 14.04.2 LTS 并且还安装了 docker 到 运行 容器。我正面临一些问题。容器将用于 运行 Jenkins 及其一些作业 运行s 脚本以安装 Android NDK/SDK。这些脚本使用 uname -p
命令检查当前机器的平台。此命令 运行 在主机上运行良好,但在容器中 returns unknown
如下所示:
lemonade@olympus:/$ docker info
Containers: 14
Images: 171
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 199
Execution Driver: native-0.2
Kernel Version: 3.16.0-38-generic
WARNING: No swap limit support
lemonade@olympus:/$ uname -a
Linux olympus 3.16.0-38-generic #52~14.04.1-Ubuntu SMP Fri May 8 09:43:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
lemonade@olympus:/$ uname -p
x86_64
lemonade@olympus:/$ docker run -ti java:7 /bin/bash
root@c6cdbb8a64fb:/# uname -p
unknown
root@c6cdbb8a64fb:/# uname -a
Linux c6cdbb8a64fb 3.16.0-38-generic #52~14.04.1-Ubuntu SMP Fri May 8 09:43:57 UTC 2015 x86_64 GNU/Linux
有谁知道为什么容器会返回这个?一些脚本(不是我们编写的)使用它,还有很多 makefile。
谢谢!
我不知道 uname -p
使用 java:7
docker 图像失败的确切原因,但这似乎是由于 docker debian
图片。 ubuntu
docker 图像,一切正常。
$ docker run debian uname -p
unknown
$ docker run ubuntu uname -p
x86_64
如果您查看 java:7
docker 图像的 Dockerfile 依赖项,您会发现以下内容:java:7
→buildpack-deps:jessie-scm
→buildpack-deps:jessie-curl
→debian:jessie
唯一破坏 uname -p
的是对 debian:jessie
的依赖。可以做的是构建自己的 java:7
docker 图像,但使其依赖于 ubuntu
而不是 debian
。
为此,您必须想出一个 Dockerfile,它是用于制作 java:7
图像的文件的合并。
uname -p
似乎设置为 unknown。
虽然您不控制这些脚本和制作文件,但您可能希望向上游提交错误报告,建议他们更改代码以使用 uname -m
,而不是如果他们试图检测 x86_64
,armv7l
、armv6l
、等等