Liberty on Alpine Linux Part4

[Liberty on Alpine Linux Part3](https://qiita.com/suzanHud/items/2b4d73ec0aa4d6eb1cb3)で Alpine Linux 3.18.11 で Liberty を動かしています。 
Alpine Linux 3.21.* がリリースされましたが、Javaのインストール時や Liberty の実行で失敗します。
そこで[sgerrand glibc](https://github.com/sgerrand/alpine-pkg-glibc/releases/download)ではなく、distroless から glibc のライブラリを取得して、環境構築してみましょう。
distroless は Googleが提供している必要最小限の依存のみが含まれるDebian10(buster)を基に作成されたコンテナイメージ です。日本語対応したいなぁ。
distroless の分かりやすいサイトとして以下があります。https://zenn.dev/yoshii0110/articles/21ddb58c6f6bfa
ありがとうございます。
[Liberty on Alpine Linux Part2](https://qiita.com/suzanHud/items/ba1c445332502aad07d5)も更新しました。OpenJDKなら簡単に動くようですね(^^;

# Dockerfile例
```docker: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のバージョンアップ