Liberty on Alpine Linux Part3

[Liberty on Alpine Linux Part2](https://qiita.com/suzanHud/items/ba1c445332502aad07d5)で Alpine Linux 3.17.0 でも Liberty が動くようになりました。以下のDocker fileは Alpine Linux 3.18.12 を使っています。 
Libertyの[index.yml](https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml)にも25.0.0.4があります。Docker build してみます。Alpine Linux 3.20.3がリリースされましたが、Liberyの起動で失敗したので 3.18.*を使っています。

# Dockerfile例
```docker:dockerfile
FROM scratch
ADD alpine-minirootfs-3.18.12-x86_64.tar.gz /

RUN apk update \
    && apk add --no-cache unzip \
    && apk --no-cache --virtual .build-deps add binutils tzdata \
    && cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
    && echo "Asia/Tokyo" >  /etc/timezone

ENV GLIBC https://github.com/sgerrand/alpine-pkg-glibc/releases/download
ENV GLIBC_VER 2.35-r1
RUN wget -q ${GLIBC}/${GLIBC_VER}/glibc-${GLIBC_VER}.apk
RUN wget -q ${GLIBC}/${GLIBC_VER}/glibc-bin-${GLIBC_VER}.apk
RUN wget -q ${GLIBC}/${GLIBC_VER}/glibc-i18n-${GLIBC_VER}.apk

RUN wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub

RUN    apk add --no-cache --force-overwrite \
           "glibc-${GLIBC_VER}.apk" \
           "glibc-bin-${GLIBC_VER}.apk" \
           "glibc-i18n-${GLIBC_VER}.apk" \
    && rm  "glibc-${GLIBC_VER}.apk" \
           "glibc-bin-${GLIBC_VER}.apk" \
           "glibc-i18n-${GLIBC_VER}.apk" \
    && /usr/glibc-compat/bin/localedef -i ja_JP -f UTF-8 ja_JP.UTF-8 \
    && apk del --purge .build-deps \
    && apk add --no-cache ca-certificates openssl

RUN rm /lib64/ld-linux-x86-64.so.2
RUN ln -s /usr/glibc-compat/lib/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2

ENV JAVA_VERSION 8.0.8.40

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.4

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"]
"defaultServer"]
```
# 起動メッセージ
起動すると以下のメッセージが出力されました。

```
IBM J9 VM バージョン 8.0.8.40 - pxa6480sr8fp40-20250123_01(SR8 FP40) (ja_JP) で、defaultServer (WebSphere Application Server 25.0.0.4/wlp-1.0.100.cl250420250407-1902) を 起動しています
[AUDIT   ] CWWKE0001I: サーバー defaultServer が起動されました。
[AUDIT   ] CWWKE0100I: この製品は、開発使用向け、および限定的な実動使用向けにライセンスが交付されています。 全ライセンス条項は以下で表示可能です: https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/license/base_ilan/ilan/25.0.0.4/lafiles/ja.html
[警告      ] CWWKF0009W: サーバーは、いずれのフィーチャーもインストールするようには構成されていません。
[AUDIT   ] CWWKF0012I: サーバーは次のフィーチャーをインストールしました。[]。
[AUDIT   ] CWWKF0011I: defaultServer サーバーは、Smarter Planet に対応する準備ができ ました。defaultServer サーバーは 2.108 秒で始動しました。
```
# 特徴
・Alpineをベースにしていて、scratchから構築している。
・日本語化している。
・2025/04/28現在の最新版IBM JRE、Libertyを使用している。
・/opt/ibm/wlp/bin/clientなども動かしたいので、/configなどのリンクは使わない。

## 変更履歴
(2022/12/22)Libertyを22.0.0.13に、glibcを2.35-r0にバージョンアップ。
(2023/01/10)Alpine Linuxを3.17.1にバージョンアップ。
(2023/01/31)Libertyを23.0.0.1にバージョンアップ。
(2023/02/11)Alpine Linuxを3.17.2にバージョンアップ。
(2023/03/08)Libertyを23.0.0.2にバージョンアップ。
(2023/04/05)Alpine Linuxを3.17.3に、Libertyを23.0.0.3にバージョンアップ。
(2023/04/07)IBM Java JREを8.0.8.0にバージョンアップ。
(2023/05/03)Libertyを23.0.0.4にバージョンアップ。
(2023/05/15)Alpine Linuxを3.18.0に、glibcを2.35-r1にバージョンアップ。
(2023/06/01)Libertyを23.0.0.5にバージョンアップ。
(2023/06/17)Alpine Linuxを3.18.2に、IBM Java JREを8.0.8.5にバージョンアップ。
(2023/06/27)Libertyを23.0.0.6にバージョンアップ。
(2023/07/26)IBM Java JREを8.0.8.6に、Libertyを23.0.0.7にバージョンアップ。
(2023/08/08)Alpine Linuxを3.18.3にバージョンアップ。
(2023/08/22)IBM Java JREを8.0.8.10に、Libertyを23.0.0.8にバージョンアップ。
(2023/10/11)Alpine Linuxを3.18.3に、IBM Java JREを8.0.8.11に、Libertyを23.0.0.9にバージョンアップ。
(2023/10/23)Libertyを23.0.0.10にバージョンアップ。
(2023/11/20)Libertyを23.0.0.11にバージョンアップ。
(2023/12/15)IBM Java JREを8.0.8.15に、Libertyを23.0.0.12にバージョンアップ。
(2024/01/30)Libertyを24.0.0.1にバージョンアップ。
(2024/03/15)Alpine Linuxを3.18.6に、IBM Java JREを8.0.8.20に、Libertyを24.0.0.2にバージョンアップ。
(2024/03/27)IBM Java JREを8.0.8.21に、Libertyを24.0.0.3にバージョンアップ。
(2024/04/28)Libertyを24.0.0.4にバージョンアップ。
(2024/05/21)IBM Java JREを8.0.8.25に、Libertyを24.0.0.5にバージョンアップ。
(2024/06/26)Alpine Linuxを3.18.7に、Libertyを24.0.0.6にバージョンアップ。
(2024/07/02)IBM Java JREを8.0.8.26にバージョンアップ。
(2024/07/19)Libertyを24.0.0.7にバージョンアップ。
(2024/08/16)IBM Java JREを8.0.8.30に、Libertyを24.0.0.8にバージョンアップ。
(2024/11/07)Libertyを24.0.0.11にバージョンアップ
(2024/12/10)IBM Java JREを8.0.8.35に、Libertyを24.0.0.12にバージョンアップ。
(2025/02/03)Alpine Linuxを3.18.11に、Libertyを25.0.0.1にバージョンアップ
(2025/03/09)Alpine Linuxを3.18.12に、IBM Java JREを8.0.8.40に、Libertyを25.0.0.2にバージョンアップ。
(2025/04/28)Libertyを25.0.0.4にバージョンアップ。