web-dev-qa-db-ja.com

Docker Alpine Linuxイメージにopenjdk8-jreをインストールできない

アルパイン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,

書かれているとおりに最後の行にぶら下がって、何もしません。どうすれば修正できますか?

編集:この問題は間違いなく、私たちが設定したナンセンスプロキシが原因です。自宅から仕事用のノートパソコンを構築すると、問題は消えます。 なぜプロキシがこれを引き起こすのかはわかりませんが、私は実際にその答えを必要としません。

2
jeremysprofile

再現できなければ、問題の原因を正確に特定することは困難ですが、straceを使用すると良いアイデアが得られる場合があります。それは多くの出力を生成しますが、いったんハングすると、最後の数行から、apkが進行しないようにしている原因を特定できるはずです-ファイルの待機、ロックなど。

straceを実行するには、--cap-add=SYS_PTRACEdocker runコマンドに追加し、apk add straceを使用してstraceをインストールします。次に、strace apk add openjdk8-jre-libを実行します。

あるいは、問題がOpenJDKパッケージのみにあり、別のベースイメージを使用する場合は、openjdk:8-jdk-Alpine3.9(または類似の)がニーズに合う場合があります。このイメージは基本的にAlpine 3.9 + openjdk8パッケージです。どちらのバリエーションでも、画像サイズは101〜105 MBです。わずかに異なるOpenJDKビルド-Alpine 3.9 + 1.8.0_201からのopenjdk8、および1.8.0_191からのopenjdk:8-jdk-Alpine3.9を取得することに注意してください。

2
valiano