Liberty on Alpine Linux Part3で Alpine Linux 3.18.11 で Liberty を動かしています。
Alpine Linux 3.21.* がリリースされましたが、Javaのインストール時や Liberty の実行で失敗します。
そこでsgerrand glibcではなく、distroless から glibc のライブラリを取得して、環境構築してみましょう。
distroless は Googleが提供している必要最小限の依存のみが含まれるDebian10(buster)を基に作成されたコンテナイメージ です。日本語対応したいなぁ。
distroless の分かりやすいサイトとして以下があります。https://zenn.dev/yoshii0110/articles/21ddb58c6f6bfa
ありがとうございます。
Liberty on Alpine Linux Part2も更新しました。OpenJDKなら簡単に動くようですね(^^;
Dockerfile例
FROM gcr.io/distroless/cc-debian12:latest AS cc
FROM alpine
ENV LD_LIBRARY_PATH="/usr/local/lib"
COPY --from=cc --chown=root:root --chmod=755 /lib/*-linux-gnu/* /usr/local/lib/
RUN mkdir /lib64 && ln -s /usr/local/lib/ld-linux-*.so.2 /lib64/
RUN apk update \
&& apk add unzip musl musl-utils musl-locales tzdata \
&& cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
&& echo "Asia/Tokyo" > /etc/timezone
ENV JAVA_VERSION=8.0.8.35
RUN set -eux; \
YML_FILE='jre/linux/x86_64/index.yml'; \
BASE_URL="https://public.dhe.ibm.com/ibmdl/export/pub/systems/cloud/runtimes/java/meta/8.0"; \
wget -q -U UA_IBM_JAVA_Docker -O /tmp/index.yml ${BASE_URL}/${YML_FILE}; \
JAVA_URL=$(sed -n '/^'${JAVA_VERSION}:'/{n;s/\s*uri:\s//p}'< /tmp/index.yml); \
wget -q -U UA_IBM_JAVA_Docker -O /tmp/ibm-java.bin.tgz ${JAVA_URL}; \
mkdir -p /opt/ibm; \
tar xvfz /tmp/ibm-java.bin.tgz -C /opt/ibm; \
mv /opt/ibm/ibm-java-x86_64-80 /opt/ibm/java
# Install WebSphere Liberty
ENV LIBERTY_VERSION=25.0.0.1
ARG LIBERTY_URL
ARG DOWNLOAD_OPTIONS=""
RUN LIBERTY_URL="https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/${LIBERTY_VERSION}/wlp-kernel-${LIBERTY_VERSION}.zip" \
&& wget -q $DOWNLOAD_OPTIONS $LIBERTY_URL -U UA-IBM-WebSphere-Liberty-Docker -O /tmp/wlp.zip \
&& unzip -q /tmp/wlp.zip -d /opt/ibm \
&& rm /tmp/wlp.zip
ENV JAVA_HOME=/opt/ibm/java/jre \
PATH=/opt/ibm/java/jre/bin:/opt/ibm/wlp/bin:$PATH \
IBM_JAVA_OPTIONS="-XX:+UseContainerSupport" \
LANG=ja_JP.UTF-8 LANGUAGE=ja_JP.UTF-8
RUN /opt/ibm/wlp/bin/server create
RUN /opt/ibm/wlp/bin/installUtility install defaultServer
EXPOSE 9080 9443
CMD ["/opt/ibm/wlp/bin/server", "run", "defaultServer"]
起動メッセージ
起動すると以下のメッセージが出力されました。
Launching defaultServer (WebSphere Application Server 25.0.0.1/wlp-1.0.97.cl250120250113-0302) on IBM J9 VM, version 8.0.8.35 - pxa6480sr8fp35-20241105_01(SR8 FP35) (en_US)
[AUDIT ] CWWKE0001I: The server defaultServer has been launched.
[AUDIT ] CWWKE0100I: This product is licensed for development, and limited production use. The full license terms can be viewed here: https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/license/base_ilan/ilan/25.0.0.1/lafiles/en.html
[WARNING ] CWWKF0009W: The server has not been configured to install any features.
[AUDIT ] CWWKF0012I: The server installed the following features: [].
[AUDIT ] CWWKF0011I: The defaultServer server is ready to run a smarter planet. The defaultServer server started in 1.970 seconds.
Dockerイメージのサイズは Alpine Linux 3.18.11 ベースより小さいです。さらに小さいのが OpenJDK を使ったものですね(^^;
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kazu_liberty_glibc 25.0.0.1 958f1d055a31 About a minute ago 383MB
kazu_liberty 25.0.0.1 23d6a57bff6c 13 minutes ago 441MB
特徴
・最新のAlpineをベースにしていて、scratchから構築している。
変更履歴
(2024/05/26)新規作成
(2025/01/03)LibertyとAlpine linuxのバージョンアップ