Vous devez créer le conteneur Docker et l'envoyer dans un registre où il est référencé par IBM Cloud Private.
Pourquoi et quand exécuter cette tâche
Utilisez l'image WebSphere Application Server officielle pour développeurs Liberty dans le concentrateur Docker.
Plusieurs images sont disponibles dans ce référentiel. L'image avec la balise beta contient le contenu de l'archive d'installation du bêta mensuel. Les autres images sont
toutes basées sur le groupe de correctifs le plus récent généralement disponible.
L'image
kernel contient juste le noyau
Liberty et aucune fonction d'exécution additionnelle. Vous pouvez utiliser cette image ou des images personnalisées contenant uniquement les
fonctions requises pour une application spécifique. Par exemple, l'exemple de fragment de fichier Docker suivant commence avec cette image, copie dans le fichier
server.xml
qui répertorie les fonctions requises par l'application puis utilise la commande
installUtility pour télécharger ces fonctions à partir du référentiel en ligne :
FROM websphere-liberty:kernel
COPY server.xml /config/
RUN installUtility install --acceptLicense defaultServer
L'image webProfile6 contient les fonctions requises pour la conformité avec Java EE6 Web Profile. Elle envoie également d'autres fonctions pour aligner le contenu avec les
fonctions téléchargeables via le fichier JAR d'exécution JAR et notamment les fonctions requises pour les applications OSGi.
L'image webProfile7 contient les fonctions requises pour la conformité avec Java EE7 Web Profile. L'image javaee7 étend cette image et ajoute les
fonctions qui sont requises pour la conformité avec Java EE7 Full Platform. L'image javaee7 est également balisée avec latest.
Les images
webProfile6,
webProfile7 et
javaee7 contiennent également toutes un ensemble de fonctions communes qui sont utilisées pour
un scénario de production typique.
Cet ensemble de fonctions communes regroupe les fonctions suivantes :
- appSecurity-2.0
- collectiveMember-1.0
- localConnector-1.0
- ldapRegistry-3.0
- monitor-1.0
- requestTiming-1.0
- restConnector-1.0
- sessionDatabase-1.0
- Mettez à jour le fichier server.xml pour accepter les connexions HTTP venant de l'extérieur du conteneur en ajoutant l'élément suivant dans la section serveur :
<httpEndpoint host="*" httpPort="9080" httpsPort="-1"/>
- Créez un projet Eclipse comme sample-one-container. Dans ce projet, incluez le fichier Docker et le fichier WAR du fichier server.xml. Voir l'exemple de fichier Docker suivant :
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
Dans ce fichier Docker, l'image de Liberty est personnalisée en copiant le fichier WAR dans le répertoire drop-ins,
qui installe l'application et démarre le serveur. Le fichier server.xml est remplacé par le fichier server.xml modifié pour permettre les connexions
HTTP venant de l'extérieur du conteneur. La licence est également acceptée.
- Regroupez le fichier server.xml et le fichier WAR dans ce projet et préparez-vous à exécuter le build Docker pour créer une image Docker.
- Ouvrez une ligne de commande et définissez le répertoire de projet sample-one-container comme répertoire en cours, puis exécutez la génération Docker. Il s'agit d'une génération Docker personnalisée, qui démarre avec l'image hub Docker Liberty et ajoute une application et la configuration de server.xml correspondante. Voir l'exemple suivant, qui affiche l'exécution d'un build réussi :
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$
- Connectez-vous à l'aide de votre ID utilisateur et de votre mot de passe Docker. Lorsque vous vous connectez au concentrateur Docker, une sortie similaire à l'exemple suivant s'affiche :
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$
- Une fois le build terminé, créez la balise de l'image. Cette balise représente le nom avec lequel cette image est référencée dans le registre. Examinez l'exemple suivant :
arthurs-mbp:docker-hub arthur$ docker tag d5ab21decab4 arthurdm/websphere-liberty
- Envoyez l'image dans le référentiel Docker Hub en la rendant publique afin qu'elle puisse être téléchargée et exécutée. Examinez l'exemple suivant :
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$
Que faire ensuite
Après avoir envoyé l'application vers le référentiel, installez-la dans votre environnement IBM Cloud Private en spécifiant l'image, arthurdm/websphere-liberty. Cette installation est
accomplie par le biais du diagramme Helm.