MLton на альпийском Linux
Я сталкиваюсь с проблемами при установке и запуске компилятора MLton в контейнере Docker с использованием Alpine Linux. Есть ли способ установить этот компилятор в этой системе?
Попробуйте №1
Используя стандартное `альпийское базовое изображение и двоичное распределение MLton:
$ curl http://sourceforge.net/projects/mlton/files/mlton/20130715/mlton-20130715-1.amd64-linux.tgz --output mlton-20130715-1.amd64-linux.tgz
$ docker build .
Со следующим Dockerfile:
FROM alpine
COPY mlton-20130715-1.amd64-linux.tgz /
RUN apk add --no-cache bash build-base gmp-dev linux-headers \
&& tar xf /mlton-20130715-1.amd64-linux.tgz \
--directory /usr/ \
--strip-components 1 \
&& echo 'print "Hello, world!\n";' >> hello-world.sml \
&& mlton hello-world.sml
Сборка Docker завершается неудачно со следующим сообщением об ошибке, возможно потому что glibc
пропал, отсутствует.
/ usr / bin / mlton: строка 52: /usr/lib/mlton/mlton-compile: нет такого файла или каталога
Попробуйте №2
То же, что и выше, с базовым образом Docker, который встраивает glibc
:
FROM frolvlad/alpine-glibc
Этот раз, mlton
работает, но выдает следующую ошибку:
/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64-alpine-linux-musl/bin/ld: / usr / lib / mlton / target /self/libmlton.a(platform.o): перемещение R_X86_64_32 против `.rodata.str1.8'нельзя использовать при создании общего объекта; перекомпилировать с -fPIC
...
/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64-alpine-linux-musl/bin/ld: ошибка последней ссылки: непредставительный раздел на выход
collect2: error: ld вернул 1 состояние выхода
сбой вызова системы со статусом выхода 1:
gcc -o hello-world /tmp/fileGEluFu.o /tmp/fileYnNjh9.o -L / usr / lib / mlton / target /self -lmlton -lgdtoa -lm -lgmp -m64 -Wl,-znoexecstack
Есть идеи, как решить эту проблему?