我有一个Haskell应用程序,我可以在docker中成功构建和运行。直到最近,在与heroku docker:release
一起部署时,它在Heroku中正常工作。但是,现在当我部署它时,我在Heroku中运行二进制文件时会出现分段错误。当我在Docker容器内部或外部本地构建和运行二进制文件时,不会发生这种情况。
我怀疑这是由于动态链接的库存在于/app
目录之外。具体来说,可执行文件链接到以下库(ldd
的输出):
linux-vdso.so.1 => (0x00007ffd1f5ec000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7119ecf000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f7119cc7000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f7119ac3000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f71198bf000)
libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f711963f000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7119336000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7119118000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7118f01000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7118b36000)
/lib64/ld-linux-x86-64.so.2 (0x000055b23a73b000)
我认为这是一个问题我是否正确?有没有好办法解决这个问题?