[JAVA] Freiheit auf Docker

Erstellen Sie eine Liberty-Ausführungsumgebung in Docker. Sie können websphere-liberty verwenden, aber ich möchte es ins Japanische übersetzen und die Docker-Datei und den Mechanismus verstehen, also habe ich eine Docker-Datei geschrieben. Es war. Neben websphere-liberty verweisen wir auch auf ibmjava.

ibmjava: 8-jre ist FROM ubuntu:18.04.3 ⇒ IBM JRE-Installation. Websphere-Freiheit FROM ibmjava:8-jre ⇒ Liberty-Installation. Installieren und japanisieren Sie Alpine Linux, IBM JRE, Liberty.

Dockerfile-Beispiel

dockerfile


FROM scratch
ADD alpine-minirootfs-3.12.0-x86_64.tar.gz /

RUN apk update \
    && ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases/download" \
    && ALPINE_GLIBC_PACKAGE_VERSION="2.31-r0" \
    && ALPINE_GLIBC_BASE_PACKAGE_FILENAME="glibc-$ALPINE_GLIBC_PACKAGE_VERSION.apk" \
    && ALPINE_GLIBC_BIN_PACKAGE_FILENAME="glibc-bin-$ALPINE_GLIBC_PACKAGE_VERSION.apk" \
    && ALPINE_GLIBC_I18N_PACKAGE_FILENAME="glibc-i18n-$ALPINE_GLIBC_PACKAGE_VERSION.apk" \
    && 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 \
    && wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \
    && wget -q "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \
               "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \
               "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" \
    && apk add --no-cache \
           "$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \
           "$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \
           "$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" \
    && rm  "$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \
           "$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \
           "$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" \
    && /usr/glibc-compat/bin/localedef -i ja_JP -f UTF-8 ja_JP.UTF-8 \
    && GCC_LIBS_URL="https://archive.archlinux.org/packages/g/gcc-libs/gcc-libs-8.3.0-1-x86_64.pkg.tar.xz" \
    && wget -q -O /tmp/gcc-libs.tar.xz ${GCC_LIBS_URL} \
    && mkdir /tmp/gcc \
    && tar -xf /tmp/gcc-libs.tar.xz -C /tmp/gcc \
    && mv /tmp/gcc/usr/lib/libgcc* /tmp/gcc/usr/lib/libstdc++* /usr/glibc-compat/lib \
    && strip /usr/glibc-compat/lib/libgcc_s.so.* /usr/glibc-compat/lib/libstdc++.so* \
    && apk del --purge .build-deps \
    && apk add --no-cache ca-certificates openssl \
    && rm -rf /tmp/gcc-libs.tar.xz /tmp/gcc

ENV JAVA_VERSION 1.8.0_sr6fp11

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/"; \
    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 ${JAVA_URL}; \
    echo "INSTALLER_UI=silent" > /tmp/response.properties; \
    echo "USER_INSTALL_DIR=/opt/ibm/java" >> /tmp/response.properties; \
    echo "LICENSE_ACCEPTED=TRUE" >> /tmp/response.properties; \
    mkdir -p /opt/ibm; \
    chmod +x /tmp/ibm-java.bin; \
    /tmp/ibm-java.bin -i silent -f /tmp/response.properties; \
    rm -f /tmp/response.properties /tmp/index.yml /tmp/ibm-java.bin

# Install WebSphere Liberty
ENV LIBERTY_VERSION 20.0.0_07

ARG LIBERTY_URL 
ARG DOWNLOAD_OPTIONS=""

RUN LIBERTY_URL=${LIBERTY_URL:-$(wget -q -O - https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml  | grep $LIBERTY_VERSION -A 6 | sed -n 's/\s*kernel:\s//p' | tr -d '\r' )}  \
    && 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"]

Startmeldung

Beim Start wurde die folgende Meldung ausgegeben.

IBM J9 VM Version 8.0.6.11 - pxa6480sr6fp11-20200602_01(SR6 FP11) (ja_JP)Und defaultServer(WebSphere Application Server 20.0.0.7/wlp-1.0.42.cl200720200625-0300)Läuft
[AUDIT   ] CWWKE0001I:Der Server defaultServer wurde gestartet.
[AUDIT   ] CWWKE0100I:Dieses Produkt ist für Entwicklungszwecke und für eingeschränkte Produktionszwecke lizenziert. Alle Lizenzbedingungen können unten eingesehen werden: https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/license/base_ilan/ilan/20.0.0.7/lafiles/ja.html
[Warnung] CWWKF0009W:Der Server ist nicht für die Installation einer der Funktionen konfiguriert.
[AUDIT   ] CWWKF0011I:Der defaultServer-Server ist bereit für Smarter Planet. Der defaultServer-Server ist 2.Es begann in 961 Sekunden.

Charakteristisch

-Es basiert auf Alpine und ist von Grund auf neu gebaut. ・ Es wurde ins Japanische übersetzt. -Die neueste Version von IBM JRE und Liberty vom 8. Juli 2020 wird verwendet. -Ich möchte auch / opt / ibm / wlp / bin / client ausführen, daher verwende ich keine Links wie / config.

index.yml wurde aktualisiert. Wenn es nicht aktualisiert wurde, laden Sie es direkt herunter, anstatt den Pfad von index.yml abzurufen. Sie können es herunterladen, wenn Sie Docker erstellen, oder Sie können das vorab heruntergeladene kopieren.

RUN LIBERTY_URL=https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/20.0.0.6/wlp-kernel-20.0.0.6.zip

websphere-liberty ist 20.0.0.6, aber JRE ist fp10.

docker run --rm websphere-liberty

Launching defaultServer (WebSphere Application Server 20.0.0.6/wlp-1.0.41.cl200620200528-0414) on IBM J9 VM, version 8.0.6.10 - pxa6480sr6fp10-20200408_01(SR6 FP10) (en_US)
[AUDIT   ] CWWKE0001I: The server defaultServer has been launched.
~

Impressionen

Wenn man sich den Inhalt von alpine-minirootfs-3.9.3-x86_64.tar.gz ansieht, scheint die Busybox erstaunlich zu sein. Es ist ein Ersatz für nur ein paar Befehle.

busybox --help
BusyBox v1.29.3 (2019-01-24 07:45:07 UTC) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2015.
Licensed under GPLv2. See source distribution for detailed
copyright notices.

Usage: busybox [function [arguments]...]
   or: busybox --list[-full]
   or: busybox --install [-s] [DIR]
   or: function [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as.

Currently defined functions:
        [, [[, acpid, add-shell, addgroup, adduser, adjtimex, arch, arp, arping, ash, awk, base64, basename,
        bbconfig, beep, blkdiscard, blkid, blockdev, brctl, bunzip2, bzcat, bzip2, cal, cat, chgrp, chmod,
        chown, chpasswd, chroot, chvt, cksum, clear, cmp, comm, conspy, cp, cpio, crond, crontab, cryptpw, cut,
        date, dc, dd, deallocvt, delgroup, deluser, depmod, df, diff, dirname, dmesg, dnsdomainname, dos2unix,
        du, dumpkmap, dumpleases, echo, ed, egrep, eject, env, ether-wake, expand, expr, factor, fallocate,
        false, fatattr, fbset, fbsplash, fdflush, fdformat, fdisk, fgrep, find, findfs, flock, fold, free,
        fsck, fstrim, fsync, fuser, getopt, getty, grep, groups, gunzip, gzip, halt, hd, hdparm, head, hexdump,
        hostid, hostname, hwclock, id, ifconfig, ifdown, ifenslave, ifup, init, inotifyd, insmod, install,
        ionice, iostat, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink, ipneigh, iproute, iprule, iptunnel, kbd_mode,
        kill, killall, killall5, klogd, less, link, linux32, linux64, ln, loadfont, loadkmap, logger, login,
        logread, losetup, ls, lsmod, lsof, lspci, lsusb, lzcat, lzma, lzop, lzopcat, makemime, md5sum, mdev,
        mesg, microcom, mkdir, mkdosfs, mkfifo, mkfs.vfat, mknod, mkpasswd, mkswap, mktemp, modinfo, modprobe,
        more, mount, mountpoint, mpstat, mv, nameif, nanddump, nandwrite, nbd-client, nc, netstat, nice, nl,
        nmeter, nohup, nologin, nproc, nsenter, nslookup, ntpd, od, openvt, partprobe, passwd, paste, patch,
        pgrep, pidof, ping, ping6, pipe_progress, pkill, pmap, poweroff, powertop, printenv, printf, ps, pscan,
        pstree, pwd, pwdx, raidautorun, rdate, rdev, readahead, readlink, readprofile, realpath, reboot,
        reformime, remove-shell, renice, reset, resize, rev, rfkill, rm, rmdir, rmmod, route, run-parts, sed,
        sendmail, seq, setconsole, setfont, setkeycodes, setlogcons, setpriv, setserial, setsid, sh, sha1sum,
        sha256sum, sha3sum, sha512sum, showkey, shred, shuf, slattach, sleep, smemcap, sort, split, stat,
        strings, stty, su, sum, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar, tee, test,
        time, timeout, top, touch, tr, traceroute, traceroute6, true, truncate, tty, ttysize, tunctl, udhcpc,
        udhcpc6, umount, uname, unexpand, uniq, unix2dos, unlink, unlzma, unlzop, unshare, unxz, unzip, uptime,
        usleep, uudecode, uuencode, vconfig, vi, vlock, volname, watch, watchdog, wc, wget, which, whoami,
        whois, xargs, xxd, xzcat, yes, zcat

BusyBox 1.29.3 ist in alpine-minirootfs-3.9.3-x86_64.tar.gz enthalten. BusyBox 1.30.1 wurde veröffentlicht, aber selbst wenn Sie sich alpine-minirootfs-3.9.4-x86_64.tar.gz ansehen, ist BusyBox immer noch 1.29.3 (^^; alpine-minirootfs-3.10.0-x86_64) .tar.gz wurde auf BusyBox 1.30.1 aktualisiert.

Bonus

Minirootfs aports Mit scripts / genrootfs.sh ist das ganz einfach. Versuchen Sie es nach dem Erstellen von Busybox-1.30.1 unter Main / Busybox.

./genrootfs.sh -o test-x86_64.tar.gz busybox-1.30.1-r1.apk \
    ssl_client-1.30.1-r1.apk \
    alpine-baselayout alpine-keys apk-tools libc-utils

Ab dem 26. August war alpine: neueste Docker-Datei wie folgt.

FROM scratch
ADD alpine-minirootfs-3.10.2-x86_64.tar.gz /
CMD ["/bin/sh"]

Referenzlink

How_to_make_a_custom_ISO_image_with_mkimage Erstellen Sie ein Paket für Alpine Linux

Die Websites, die ich überprüfen möchte, sind wie folgt. · IBM JRE https://public.dhe.ibm.com/ibmdl/export/pub/systems/cloud/runtimes/java/meta/jre/linux/x86_64/index.yml ・ Freiheit https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml

Liberty wird veröffentlicht Es befindet sich in Empfohlene Updates für WebSphere Application Server, ist jedoch nur ein Plan und daher häufig schneller.

Geschichte verändern

(22.06.2019) Rootfs wurde von 3.9.3 auf 3.10.0 geändert, Liberty auf 19.0.0_06 (2019/6/27) keytool gibt den folgenden Fehler aus. Fügen Sie daher die Änderung des Hostnamens hinzu Standard-SSL-Zertifikat kann nicht erstellt werden. Keytool-Fehler (möglicherweise in Englisch): java.lang.RuntimeException: java.io.IOException: Ungültiger IPAddressName 992fdba70de5 (2019/7/11) jre wurde in 1.8.0_sr5fp37 geändert. Gelöschte Kopie von server.xml und ear. Der Einstellungsteil des Hostnamens wurde gelöscht. (24.07.2019) Umgang mit Versionen, die nicht in [index.yml] gefunden wurden (https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml) Hinzufügen. 19.0.0.7 usw. (2019/8 / 1x?) [Index.yml] https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/downloads/wlp/index.yml) wurde aktualisiert. Also habe ich die Basis Liberty auf 19.0.0.7 geändert. (21.08.2019) JRE wurde auf 1.8.0_sr5fp40 und Liberty auf 19.0.0.8 aktualisiert. (26.08.2019) Die Version von alpine Linux wurde auf 3.10.2 geändert. Die Version von ALPINE_GLIBC wurde auf 2.30 geändert. (15.9.2019) Liberty wurde auf 19.0.0.9 aktualisiert. (29.9.2019) Hinzugefügt ca. 8.0.5.41 von jre. (11.10.2019) Libertys 19.0.0.10 wurde veröffentlicht. index.yaml wurde ebenfalls aktualisiert. (22.10.2019) Der Teil wurde behoben, der nicht auf Liberty-19.0.0.10 aktualisiert werden konnte. (23.10.2019) Rootfs of Alpine wurde auf 3.10.3 aktualisiert. (13.11.2019) Liberty wurde auf 19.0.0.11 aktualisiert. (2020/3/6) Liberty wird auf 20.0.0.2 aktualisiert, Alpine's rootfs wird auf 3.11.3 aktualisiert und jre wird auf 8.0.6.5 aktualisiert. (2020/3/24) Liberty wurde auf 20.0.0.3 und Alpine's rootfs auf 3.11.5 aktualisiert. (2020/4/12) Liberty wurde auf 20.0.0.4 und jre auf 8.0.6.7 aktualisiert. Liberty ist jedoch noch nicht in index.yml enthalten. (2020/4/15) Liberty-20.0.0.4 wurde zu index.yml hinzugefügt und daher korrigiert. Die Liberty-Versionsspezifikation wurde korrigiert. (2020/5/8) Liberty wird auf 20.0.0.5 und jre auf 8.0.6.10 aktualisiert. Fest. Die Liberty-Versionsspezifikation wurde korrigiert. (2020/5/23) Alpline Linux wurde auf 3.11.6 aktualisiert und der Status der Websphere-Freiheit wurde aktualisiert. (2020/6/12) Alpline Linux wurde auf 3.12.0 und Liberty auf 20.0.0.6 aktualisiert. (2020/6/27) Jre auf 8.0.6.11 aktualisiert. (2020/7/8) Liberty wurde auf 20.0.0.7 aktualisiert.

Recommended Posts

Freiheit auf Docker
Redmine auf Docker
Docker-Installation unter CentOS 6
Python-Memo auf Docker
Installieren Sie Docker auf Manjaro
Installieren Sie Docker auf Raspberry Pi
Installieren Sie Docker unter Windows 10 PRO
Aktivieren Sie HTTPS in WebSphere Liberty
Installieren Sie Docker unter Ubuntu Server 20.04
Führen Sie openvpn unter Docker aus (Windows)
Probieren Sie Docker unter Windows 10 Home aus
Oracle Java 8 unter Docker Ubuntu
Gehostetes Apicurio Studio auf Docker
Installieren Sie Docker auf AWS EC2
Docker
Installieren Sie openjdk8 auf dem Docker-Image (Debian).
Führen Sie das SSE-Beispiel (Server-Sent-Event) auf Docker aus
Schritte zum Ausführen von Docker auf einem Mac
Führen Sie Puppeteer-Core auf Heroku aus (Docker Edition)
Probieren Sie Redmine auf dem Mac Docker aus
Verwenden Sie Docker Compose unter Windows 10 Home
Führen Sie die AWS CLI in Docker aus
So führen Sie JavaFX unter Docker aus
WordPress mit Docker Compose unter CentOS 8
Erstellen Sie Clang x VSCode auf Docker (1)
Stellen Sie das Docker-Image von Flask in Heroku bereit
Konstruktionsverfahren für Rails on Docker-Umgebungen
Führen Sie PureScript auf einem Docker-Container aus
Probieren Sie Docker unter Windows Home aus (September 2020)
Stellen Sie Rails on Docker für Heroku bereit
Verwenden von Docker mit Windows10 Home WSL2
Verwenden Sie Docker CE (Official) mit CentOS 8
Erstellen Sie eine Unity-Entwicklungsumgebung auf Docker
Probieren Sie einfach C # 9 (.NET 5) in Docker aus
Docker-Memo
Windows Docker: Datenträgerdruck auf WSL-Datei
Veröffentlichen Sie das Docker-Image in der GitHub-Paketregistrierung
Installieren Sie Docker und Docker-Compose unter Alpine Linux
Frühling × Docker
Über Docker
Starten Sie einen Docker-Container auf EC2 (persönliches Memorandum)
Passen Sie OpenFOAM v8 Docker Image auf dem Mac an
Führen Sie NordVPN im Docker (Windows) Ubuntu-Container aus
Docker Intellij
Docker-Grundlagen
Verwenden Sie Docker in einer Proxy-Umgebung unter Ubuntu 20.04.1