Скомпилированный в Go двоичный файл не будет работать в контейнере Alpine Docker на хосте Ubuntu

Данный бинарный файл, скомпилированный с помощью GoGOOS=linux а такжеGOARCH=amd64развернут вdocker контейнер на основеalpine:3.3двоичный файл не будет работать, если хостом механизма докера является Ubuntu (15.10):

sh: /bin/artisan: not found

Этот же бинарный файл (скомпилированный для той же ОС и Arch) будетбеги просто отлично если хост механизма докераbusybox (который является основой дляalpine) развернут в виртуальной машине VirtualBox на Mac OS X.

Этот же двоичный файл также будет отлично работать, если контейнер основан на одном из образов Ubuntu.

Любая идея, что этот двоичный файл отсутствует?

Это то, что я сделал для воспроизведения (успешный запуск в VirtualBox / busybox на OS X не показан):

Build (сборка явно с флагами, даже если арка совпадает):

➜  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 docker/build/bin/        
➜  artisan git:(master) ✗ cd docker 
➜  docker git:(master) ✗ cat Dockerfile 
FROM docker:1.10
COPY build/ /
➜  docker git:(master) ✗ docker build -t artisan .
Sending build context to Docker daemon 10.15 MB
Step 1 : FROM docker:1.10
...
➜  docker git:(master) ✗ docker run -it artisan sh
/ # /bin/artisan 
sh: /bin/artisan: not found

Теперь изменив базу изображения наphusion/baseimage:

➜  docker git:(master) ✗ cat Dockerfile 
#FROM docker:1.10
FROM phusion/baseimage
COPY build/ /
➜  docker git:(master) ✗ docker build -t artisan .
Sending build context to Docker daemon 10.15 MB
Step 1 : FROM phusion/baseimage
...
➜  docker git:(master) ✗ docker run -it artisan sh
# /bin/artisan
08:16:39.424 [ERROR] artisan: need a command, one of server, provision or build 

Ответы на вопрос(1)

Ваш ответ на вопрос