5
Go编译的二进制文件不会在Ubuntu主机上的高山Docker容器中运行
给定一个二进制文件,使用Go使用GOOS=linuxand编译该二进制文件,并将其GOARCH=amd64部署到docker基于的容器中alpine:3.3,如果Docker引擎主机为Ubuntu(15.10),则该二进制文件将不会运行: sh: /bin/artisan: not found 如果将docker引擎主机(作为的基础)部署在Mac OS X上的VirtualBox VM中,则该相同的二进制文件(针对相同的OS和Arch编译)将运行良好。busyboxalpine 如果容器基于Ubuntu映像之一,则同样的二进制文件也可以很好地运行。 知道这个二进制文件丢失了什么吗? 这是我所做的复制操作(未显示在OS X的VirtualBox / busybox中成功运行): 构建(即使拱门匹配,也将使用标志显式构建): ➜ artisan git:(master) ✗ GOOS=linux GOARCH=amd64 go build 检查它是否可以在主机上运行: ➜ artisan git:(master) ✗ ./artisan 10:14:04.925 [ERROR] artisan: need a command, one of server, provision or build 复制到docker dir,构建并运行: ➜ artisan git:(master) ✗ cp artisan …