![无法在 Docker Alpine Linux 映像中安装 openjdk8-jre](https://linux22.com/image/150230/%E6%97%A0%E6%B3%95%E5%9C%A8%20Docker%20Alpine%20Linux%20%E6%98%A0%E5%83%8F%E4%B8%AD%E5%AE%89%E8%A3%85%20openjdk8-jre.png)
阿尔派 3.7 和 3.9。apk add htop
工作正常。apk add openjdk8-jre
永远挂起。问题步骤:
(25/36) Installing openjdk8-jre-lib (8.201.08-r0)
usr/ (dir)
usr/lib/ (dir)
usr/lib/jvm/ (dir)
usr/lib/jvm/java-1.8-openjdk/ (dir)
usr/lib/jvm/java-1.8-openjdk/jre/ (dir)
usr/lib/jvm/java-1.8-openjdk/jre/THIRD_PARTY_README
usr/lib/jvm/java-1.8-openjdk/jre/LICENSE
usr/lib/jvm/java-1.8-openjdk/jre/lib/ (dir)
usr/lib/jvm/java-1.8-openjdk/jre/lib/jsse.jar
usr/lib/jvm/java-1.8-openjdk/jre/lib/rt.jar
输出如下strace
:
writev(1, [{iov_base="\338\33[0K\0337 54% ###################"..., iov_len=198}, {iov_base=NULL, iov_len=0} 54% ##################################################################################################### ) = 198
read(7, "\33\225\360$Vq\345\373\3117\300bi\373\206\345\v\254\225\226\344\217\324\251\332\267\224uY4\24\353"..., 8192) = 318
...[truncated a bunch more read(7, ... commands]
read(7, "\345\321\\L\270\266dD5&\3728\345lfj\7\t\341\345\235\317\336\370\334\20P\266\na\200\30"..., 4047) = 4044
read(7, "& e", 3) = 3
read(7, "\330\5,\tIj*\264W\356i\243\326\32\277\10\216\t\216\25\346\237\314?kd\276e\227\2233\333"..., 8192) = 531
read(7, "\r\241\306\205\3\325h\257&\242\312\341\24%\2331V.\223)\251\262=\v\314\20i\312\375\10r/"..., 7661) = 1348
read(7, "\235\2\333t\266\247\211\253Q*\207\205\v\34\351\231@#s\332\244\261\3321\247\264\253eBP\26z"..., 6313) = 5122
read(7, "T\314E\236\r\31g5d\234\325\20\377\25*\365\305\236\251'X\251'\330\2517\253\324\227x\246\236"..., 1191) = 1191
read(7, "T\256\376J\337%\vU\1\306\333\244l\4\376\225\323\21#\336'S\211nW@@\5/\31\1R"..., 8192) = 4941
read(7, "\6L\373\300\20\231>\2\263e*\312\267\342\344\210r\221\212r\221\356\205w\341=\274\277\1\362\345\265"..., 3251) = 1419
read(7, "\3514qz\362\346.2RPB\301[\3753\251\323B\272 uF\354\224\356*j'N{\2308"..., 1832) = 1460
read(7, "|\340\311C\255a\237+\17\301s()fHw\375\n\244\242<\221a\2p|\354\331\332\307\236\255"..., 372) = 372
read(7, "In(\231IC\263J\322\203i+\371\235@o\21\210\341\5\217;\222k7\79\233\263Q\265\34"..., 8192) = 1007
read(7,
它挂在所写的最后一行上并且不执行任何操作。我怎样才能解决这个问题?
编辑:这个问题肯定是由于我们在工作中设置的无意义代理造成的。当我在家中使用工作笔记本电脑进行构建时,问题就消失了。我不清楚为什么我们的代理造成了这个问题,但我真的不需要答案。
答案1
如果无法重现,很难准确判断出了什么问题,但您也许可以使用strace
.它将生成大量输出,但是一旦挂起,您应该能够从最后几行中判断出哪些内容无法继续apk
进行 - 等待文件、锁定等。
要运行strace
,请添加--cap-add=SYS_PTRACE
到您的docker run
命令并使用 来安装 strace apk add strace
。然后,运行strace apk add openjdk8-jre-lib
。
或者,如果问题仅与 OpenJDK 包有关,并且您愿意使用不同的基础映像openjdk:8-jdk-alpine3.9
(或类似的映像)可能会满足您的需求。该镜像基本上是 Alpine 3.9 + openjdk8 包。在这两种变体中,图像大小均为 101-105MB。请注意,您获得的 OpenJDK 版本略有不同 -1.8.0_201
来自 Alpine 3.9 +openjdk8
和1.8.0_191
来自openjdk:8-jdk-alpine3.9
.