[17.0.0.3 and later]

Création du conteneur Docker pour vos applications

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

Procédure

  1. 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"/>
  2. 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.

  3. 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.
  4. 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$
  5. 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$
  6. 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
  7. 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$

Résultats

Vous avez créé un conteneur Docker que vous avez poussé dans un référentiel de concentrateur Docker.

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.


Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_icp_docker.html