具有ARM CPU的QNAP NAS上的GitLab(通过Docker)(“ exec格式错误”)

时间:2018-09-17 15:57:20

标签: docker arm qnap

我刚刚购买了QNAP TS-832X NAS(固件:4.3.4.0695 Build 20180830)。

该计算机配有ARM CPU(Annapurna Labs Alpine AL324四核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

docker版本

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

1 个答案:

答案 0 :(得分:0)

很抱歉得知您的问题,很遗憾,我不认为ARM设备有任何官方GitLab Docker image

根据个人经验,我发现大多数开发人员都会为Intel设备制作Docker映像,但不能在ARM设备上工作。

已经在QNAP Forums上讨论了该主题:

  

我的QNAP基于Intel,因此我无法证实您的结果,但是引用了有关Raspberry Pi上的docker页面的几句话:

     

“您使用的基于Docker的应用程序必须专门针对ARM体系结构打包!针对x86 / x64打包的基于Docker的应用程序将无法正常工作,并会导致以下错误:   FATA [0003]来自守护程序的错误响应:无法启动容器0f0fa3f8e510e53908e6a459e817d600b9649e621e7dede974d6a65761ad39e5:执行格式错误   在Docker Hub上搜索应用程序时,请记住这一点-Docker应用程序/映像的源。如果您在标题或说明中看到关键字RPI或ARM,则该应用程序通常可用于Raspberry Pi。”

     

TS-831​​X具有一个“ AnnapurnaLabs,这是亚马逊公司的Alpine AL-314四核1.7 GHz Cortex-A15处理器” CPU,它是一种类似于Raspberry Pi的ARM架构。      

因此,我怀疑您可能会限制您可以访问的Docker映像,并且除非应用程序的官方/规范维护人员也进行ARM构建,否则您可能会固执己见或信任第三方爱好者为此...

我不想这么说,但我想你应该选择一个英特尔公司。

我有一个QNAP TS-251 +(基于Intel),在RAID配置中具有8GB RAM和2x8TB,除了运行PLEX并将其用作Web服务器之外,它还非常适合我的Gitlab实例。

我还建议您何时最终启动并运行该卷,以将卷映射到易于访问的目录,以便轻松进行配置更改。