Я пытаюсь запустить некоторый код на haskell на хосте ubuntu (18.04), который был скомпилирован на моем ноутбуке.
host: 4.15.0-36-generic #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
laptop: 4.14.74-1-MANJARO #1 SMP PREEMPT Fri Oct 5 14:16:52 UTC 2018 x86_64 GNU/Linux
Я получаю ошибку
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found
ПослеПроведя некоторые исследования, я узнал, что это потому, что на моем ноутбуке установлена версия 2.28 glibc, но на хосте установлена только libc6 2.27.
Я немного погуглил и подумал, что, возможно, докер может решить эту проблему.Однако я только что создал образ докера со следующим Dockerfile, и он не работал (та же ошибка GLIBC_2.28)
FROM fpco/stack-build:lts-12.9 as builder
RUN mkdir /opt/build
COPY . /opt/build
RUN cd /opt/build && stack build
FROM ubuntu:18.04
RUN mkdir -p /opt/myapp
WORKDIR /opt/myapp
RUN apt-get update && apt-get install -y \
ca-certificates
COPY --from=builder /opt/build/.stack-work/install/x86_64-linux-tinfo6/lts-12.9/8.4.3/bin .
CMD ["/opt/myapp/myapp-exe"]
Я не уверен, что теперь делать.У меня есть несколько вопросов:
Почему у меня вообще возникает эта проблема?Я думал, что где-то читал, что glibc обратно совместим?(Glibc - это то же самое, что libc6 ..?)
Есть ли способ использовать docker, чтобы обойти эту проблему?Могу ли я запустить процесс сборки внутри образа Ubuntu?Например, FROM fcpo/stack-build:lts-12.9 and ubutu:18.04
, а затем создать еще один образ Ubuntu, в который я копирую свой бинарный файл?
Кто-нибудь еще сталкивался с этим раньше?Если да, то нашли ли вы решение (кроме простого изменения операционной системы?)?