创建 Docker 映像后,我无法运行 bash、sh 和其他命令。今天我意识到我什至无法运行 make (有些条件我现在看不到)。这是我遇到的错误:
Making all in data
make[1]: Entering directory '/usr/local/proj/data'
Make proj.db
rm -f proj.db
Error relocating /usr/lib/libreadline.so.8: tgetnum: symbol not found
Error relocating /usr/lib/libreadline.so.8: tgoto: symbol not found
Error relocating /usr/lib/libreadline.so.8: tgetflag: symbol not found
Error relocating /usr/lib/libreadline.so.8: tputs: symbol not found
Error relocating /usr/lib/libreadline.so.8: tgetent: symbol not found
Error relocating /usr/lib/libreadline.so.8: tgetstr: symbol not found
Error relocating /usr/lib/libreadline.so.8: BC: symbol not found
Error relocating /usr/lib/libreadline.so.8: PC: symbol not found
Error relocating /usr/lib/libreadline.so.8: UP: symbol not found
Build of proj.db failed
make[1]: Leaving directory '/usr/local/proj/data'
make[1]: *** [Makefile:665: proj.db] Error 1
make: *** [Makefile:486: all-recursive] Error 1
这是导致所有这些麻烦的图像的 Dockerfile (其中我无法运行 /bin/bash )
https://github.com/icemagno/gdaljava/blob/main/DockerfileGrads
我对linux一无所知,所以我什至不知道该放什么在这里寻求帮助。您可以询问更多信息,但请不要因此而投反对票。
我可以看到一些“readline”的东西Dockerfile 在这里
答案1
通过删除readline
安装解决了我自己的问题。我不知道它的用途,稍后当尝试使用 GRADS (我的图像)时可能会发现。
不知道如何解决问题的根源,如果我支付删除这个包的代价,可能会再次回到这里。
我看到脚本安装 READLINE 两次。一个来自 apk add,另一个来自构建:
RUN wget http://git.savannah.gnu.org/cgit/readline.git/snapshot/readline-master.tar.gz \
&& tar xf readline-master.tar.gz \
&& cd readline-master \
&& ./configure --prefix=/usr \
&& make -j4 \
&& make install \
&& cd .. \
&& rm -rf readline-master \
&& rm -rf readline-master.tar.gz
但无法判断这是否导致问题,因为我没有更多时间进行测试。如果其他用户因同样的错误到达这里,我会告诉他们尝试更改 readline 安装。
+-------------------------------+
| |
| GrADS will be built with: |
| |
| - GUI disabled |
| - READLINE disabled |
| - GEOTIFF disabled |
| + SHAPEFILE enabled |
| + GD enabled |
| + CAIRO enabled |
| - GRIB2 disabled |
| - HDF4 disabled |
| + HDF5 enabled |
| + NETCDF3 enabled |
| - OPeNDAP disabled |
| |
+-------------------------------+