Sie müssen den Docker-Container erstellen und ihn mit einer mit Push-Operation in eine Registry übertragen, in der er von IBM Cloud Private referenziert wird.
Informationen zu diesem Vorgang
Verwenden Sie das offizielle Image mit WebSphere Application Server for Developers Liberty in Docker Hub.
In diesem Repository sind mehrere Images vorhanden. Das Image mit dem Tag beta enthält das Installationsarchiv für die monatliche Betaversion. Die anderen Images basieren auf dem neuesten allgemein verfügbaren Fixpack.
Das
kernel-Image enthält nur den
Liberty-Kernel und keine zusätzlichen Laufzeitfunktionen. Sie können dieses Image verwenden oder kundenspezifische Images verwenden, die nur das Feature enthalten, das für eine bestimmte Anwendung erforderlich ist. Das folgende Dockerfile-Beispielsnippet startet beispielsweise mit diesem Image, kopiert in die Datei
server.xml, in der die von der Anwendung benötigten Features aufgelistet sind, und verwendet anschließend den Befehl
installUtility, um diese Features aus dem Online-Repository herunterzuladen:
FROM websphere-liberty:kernel
COPY server.xml /config/
RUN installUtility install --acceptLicense defaultServer
Das webProfile6-Image enthält die Features, die für die Java
EE-6-Web-Profile-Konformität erforderlich sind. Es extrahiert weitere Features, um mithilfe der Laufzeit-JAR-Datei die Inhalte mit den Features, die für den Download verfügbar sind, abzustimmen. Dies gilt insbesondere für die Features, die für OSGi-Anwendungen erforderlich sind.
Das webProfile7-Image enthält die Features, die für die Konformität mit Java EE 7 Web Profile erforderlich sind. Das javaee7-Image erweitert dieses Image und fügt die Features hinzu, die für die Konformität mit Java EE 7 Full Platform erforderlich sind. Das javaee7-Image ist außerdem mit latest getaggt.
Die Images
webProfile6,
webProfile7 und
javaee7 enthalten außerdem alle einen gemeinsamen Satz von Features für ein typisches Produktionsszenario. Die folgenden Features bilden diesen gemeinsamen Satz von Features:
- appSecurity-2.0
- collectiveMember-1.0
- localConnector-1.0
- ldapRegistry-3.0
- monitor-1.0
- requestTiming-1.0
- restConnector-1.0
- sessionDatabase-1.0
- Aktualisieren Sie die Datei server.xml, um HTTP-Verbindungen von außerhalb des Containers zu akzeptieren, indem Sie in der Serverzeilengruppe das folgende Element hinzufügen:
<httpEndpoint host="*" httpPort="9080" httpsPort="-1"/>
- Erstellen Sie ein Eclipse-Projekt, wie z. B. sample-one-container. Schließen Sie in dieses Projekt die Dockerfile und die WAR-Datei aus der Datei
server.xml ein. Sehen Sie sich hierzu das folgende Beispiel für die Dockerfile an:
FROM library/websphere-liberty:webProfile7
Add sample-one.war /opt/ibm/wlp/usr/servers/defaultServer/apps
COPY server.xml /opt/ibm/wlp/usr/servers/defaultServer/
ENV LICENSE accept
In dieser Dockerfile wird das Liberty angepasst, indem die WAR-Datei in
das Verzeichnis drop-ins kopiert wird, die die Anwendung installiert und den Server startet. Die Datei server.xml wird durch die geänderte server.xml-Datei ersetzt, um HTTP-Verbindungen von außerhalb des Containers zuzulassen. Die Lizenz wird ebenfalls akzeptiert.
- Stellen Sie die Datei server.xml und die WAR-Dateien in diesem Projekt zusammen und bereiten Sie die Ausführung des Docker-Builds vor, um ein Docker-Image zu erstellen.
- Öffnen Sie eine Befehlszeile und legen Sie das aktuelle Verzeichnis auf das Projektverzeichnis sample-one-container fest und führen Sie den Docker-Build aus. Dies ist ein angepasster Docker-Build, der mit dem Liberty-Docker-Hub-Image beginnt und eine Anwendung und die entsprechende Konfigurationsdatei server.xml hinzufügt. Sehen Sie sich das folgende Beispiel an, das die Ausführung eines erfolgreichen Builds anzeigt:
arthurs-mbp:docker-hub arthur$ docker build .
Sending build context to Docker daemon 957.4kB
Step 1/4 : FROM websphere-liberty:kernel
---> 3fd79ff460ff
Step 2/4 : COPY server.xml /config/
---> Using cache
---> a0e43965425f
Step 3/4 : COPY airlines.war /config/apps/
---> Using cache
---> dfc6aee86df5
Step 4/4 : RUN installUtility install --acceptLicense defaultServer
---> Using cache
---> d5ab21decab4
Successfully built d5ab21decab4
arthurs-mbp:docker-hub arthur$
- Melden Sie sich mit Ihrer Docker-Benutzer-ID und dem zugehörigen Kennwort an. Wenn Sie sich an Docker Hub anmelden, wird eine Ausgabe ähnlich dem folgenden Beispiel angezeigt:
arthurs-mbp:docker-hub arthur$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: arthurdm
Password:
Login Succeeded
arthurs-mbp:docker-hub arthur$
- Erstellen Sie den Tag für das Image, nachdem der Build fertiggestellt ist. Dieser Tag stellt den Namen dar, mit dem dieses Image in der Registry referenziert wird. Sehen Sie sich hierzu das folgende Beispiel an:
arthurs-mbp:docker-hub arthur$ docker tag d5ab21decab4 arthurdm/websphere-liberty
- Übertragen Sie das Image mit Push-Operation in das Docker-Hub-Repository, machen Sie es öffentlich zugänglich, sodass es heruntergeladen und ausgeführt werden kann. Sehen Sie sich hierzu das folgende Beispiel an:
arthurs-mbp:docker-hub arthur$ docker push arthurdm/websphere-liberty
The push refers to a repository [docker.io/arthurdm/websphere-liberty]
c2eefa54fcc7: Layer already exists
09fa033b42e3: Layer already exists
753266ce94a2: Layer already exists
0a76debd7d35: Layer already exists
d86dd55017f1: Layer already exists
d5e2acba7cce: Layer already exists
eefb3f013a83: Layer already exists
28fca5e92849: Layer already exists
3e60706b7714: Layer already exists
1a39a1088d6e: Layer already exists
73e5d2de6e3e: Layer already exists
08f405d988e4: Layer already exists
511ddc11cf68: Layer already exists
a1a54d352248: Layer already exists
9d3227c1793b: Layer already exists
latest: digest: sha256:9e41f2a269360fbd0ff926434ab4df38cce49aa83442b1a38eaf13049cb164b2 size: 3453
arthurs-mbp:docker-hub arthur$
Nächste Schritte
Nachdem Sie die Anwendung mit Push-Operation in das Repository übertragen haben, installieren Sie die Anwendung in Ihrer
IBM Cloud Private-Umgebung, indem Sie das Image arthurdm/websphere-liberty angeben. Diese Installation wird mit dem Helmdiagramm durchgeführt.