我刚买了一台QNAP TS-832XNAS(固件:4.3.4.0695 Build 20180830(。
这台机器配备了一个ARM CPU(Annapurna Labs Alpine AL324 Quad-Core ARM Cortex-A57 CPU @ 1.70GHz(。
我买它只是为了在上面安装 GitLab,但官方图像似乎不起作用。
当我尝试运行映像时,它失败了。
[~] # docker run -d --name gitlab-server --hostname build1 -p 10080:10080 -p 10022:22 -p 10443:443 -v /share/GitLab/config:/etc/gitlab -v /share/GitLab/logs:/var/log/gitlab -v /share/GitLab/data:/var/opt/gitlab --restart always gitlab/gitlab-ce:latest
[~] # docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a176158729ad gitlab/gitlab-ce:latest "/assets/wrapper" 5 seconds ago Restarting (1) 1 second ago gitlab-server
[~] # docker logs a1
standard_init_linux.go:185: exec user process caused "exec format error"
standard_init_linux.go:185: exec user process caused "exec format error"
standard_init_linux.go:185: exec user process caused "exec format error"
standard_init_linux.go:185: exec user process caused "exec format error"
standard_init_linux.go:185: exec user process caused "exec format error"
standard_init_linux.go:185: exec user process caused "exec format error"
standard_init_linux.go:185: exec user process caused "exec format error"
谷歌搜索后,我认为这可能是由主机架构引起的,所以我尝试运行ulm0/gitlab
,但结果相同。
我还尝试了其他标签中带有"ARM"的图像,例如arm64v8/ubuntu
。这个甚至没有给出任何日志。
[~] # docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2b2b68bc912c arm64v8/ubuntu:latest "/bin/bash" 7 seconds ago Restarting (0) 1 second ago ubuntu-arm
a176158729ad gitlab/gitlab-ce:latest "/assets/wrapper" 2 hours ago Restarting (1) 51 seconds ago gitlab-server
[~] # docker logs 2b
[~] #
uname -a
Linux build1 4.2.8 #2 SMP Thu Aug 30 07:33:01 CST 2018 aarch64 GNU/Linux
码头工人版本
Client:
Version: 17.09.1-ce
API version: 1.32
Go version: go1.8.3
Git commit: a9fd393
Built: Fri Aug 3 04:31:20 2018
OS/Arch: linux/arm64
Server:
Version: 17.09.1-ce
API version: 1.32 (minimum version 1.12)
Go version: go1.8.3
Git commit: a9fd393
Built: Fri Aug 3 04:31:20 2018
OS/Arch: linux/arm64
Experimental: false
很抱歉听到您的问题,不幸的是,我不相信ARM设备有任何官方GitLab Docker image
。
根据个人经验,我发现大多数开发人员会为英特尔设备制作Docker映像,但不能在ARM设备上工作。
这个话题已经在 QNAP 论坛上讨论过:
我的 QNAP 是基于英特尔的,所以我无法证实你的结果,但引用一个关于 Raspberry Pi 上 docker 的页面中的几句话:
"您使用的基于 Docker 的应用程序必须专门针对 ARM 架构进行打包!为 x86/x64 打包的基于 Docker 的应用程序将无法正常工作,并将导致错误,例如: FATA[0003] 来自守护程序的错误响应:无法启动容器 0f0fa3f8e510e53908e6a459e817d600b9649e621e7dede974d6a65761ad39e5:exec 格式错误 在 Docker Hub 上搜索应用程序时请记住这一点 - Docker 应用程序/映像的来源。如果您在标题或描述中看到关键字RPI或ARM,则此应用程序通常可用于Raspberry Pi。
TS-831X 拥有"AnnapurnaLabs,亚马逊旗下公司 Alpine AL-314 四核 1.7 GHz Cortex-A15 处理器"CPU,这是一种与树莓派非常相似的 ARM 架构。
因此,我怀疑您可能在可以访问哪些 Docker 映像方面受到限制,除非应用程序的官方/规范维护者也进行了 ARM 构建,否则您可能会陷入滚动自己的或信任第三方爱好者这样做......
我不想这么说,但我想说你应该选择英特尔的。
我有一个 QNAP TS-251+(基于英特尔(,在 RAID 配置中具有 8GB RAM 和 2x8TB,除了运行 PLEX 并将其用作 Web 服务器外,这非常适合我的 Gitlab 实例。
我还建议您在最终启动并运行时将卷映射到易于访问的目录,以便您可以轻松地进行配置更改。