не могу выполнить двоичный файл внутри контейнера докера, но с хоста - PullRequest
2 голосов
/ 15 марта 2019

У меня есть докер-контейнер на основе composer:1.8 (на основе php:7-alpine).

Внутри контейнера я загружаю tar.gz через php, распаковываю его и извлекаю, который работает нормально.Это содержит двоичный файл Go, который я хочу выполнить.При выполнении бинарного файла внутри контейнера Docker я получаю это сообщение об ошибке: ./bin/<binary>: No such file or directory.На моем хост-компьютере я могу выполнить этот бинарный файл, скачанный внутри контейнера докера.

Если это важно, я запускаю контейнер докера с: docker run -it --rm --volume=$PWD:/usr/src/myapp -u $(id -u):$(id -g) --name ec ec /bin/bash

Я также попытался запустить readelf -a <binary> после установки, но это не имеет никакого эффекта.

bash-4.4$ ls -l <binary> && echo userid: $(id -u) && echo groupid: $(id -g) && uname -om && ./<binary>
-rwxr-xr-x    1 1000     985        7582050 Mar 15 17:09 <binary>
userid: 1000
groupid: 985
x86_64 Linux
bash: ./<binary>: No such file or directory

Что я могу сделать, чтобы это работало?

1 Ответ

2 голосов
/ 16 марта 2019

Это потому, что двоичный файл скомпилирован с использованием glibc и alpine с использованием musl.Я нашел способ передать мою двоичную переменную окружения CGO_ENABLED=0 при сборке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...