このタスクについて
Docker Hub では、正式な WebSphere® Application Server for Developers Liberty イメージを使用します。
このリポジトリー内では複数のイメージが使用可能です。beta のタグを持つイメージには、毎月のベータのインストール・アーカイブの内容が含まれています。その他のイメージはすべて、一般出荷可能な最新のフィックスパックに基づいています。
kernel イメージには、
Liberty カーネルだけが含まれており、追加のランタイム・フィーチャーは含まれていません。このイメージを使用するか、または特定のアプリケーションに必要なフィーチャーのみを含むカスタムビルトのイメージを使用できます。例えば、以下の Dockerfile サンプル・スニペットは、このイメージから開始し、アプリケーションに必要なフィーチャーをリストする
server.xml ファイルにコピーし、次に
installUtility コマンドを使用してオンライン・リポジトリーからそれらのフィーチャーをダウンロードします。
FROM websphere-liberty:kernel
COPY server.xml /config/
RUN installUtility install --acceptLicense defaultServer
webProfile6 イメージには、Java EE6 Web Profile 準拠に必要なフィーチャーが含まれています。また、このイメージは、内容を、ランタイム JAR ファイルを使用してダウンロード可能なフィーチャー (特に、OSGi アプリケーションに必要なフィーチャー) と合致させるためにさらなるフィーチャーを取り入れます。
webProfile7 イメージには、Java EE7 Web Profile 準拠に必要なフィーチャーが含まれています。javaee7 イメージは、このイメージを拡張し、Java EE7 Full Platform 準拠に必要なフィーチャーを追加します。javaee7 イメージには、latest のタグも付いています。
webProfile6、
webProfile7、および
javaee7 のすべてのイメージには、代表的な実動シナリオに使用される共通のフィーチャー・セットも含まれています。以下のフィーチャーが、この共通のフィーチャー・セットを形成しています。
- appSecurity-2.0
- collectiveMember-1.0
- localConnector-1.0
- ldapRegistry-3.0
- monitor-1.0
- requestTiming-1.0
- restConnector-1.0
- sessionDatabase-1.0
- サーバー・スタンザ内に以下のエレメントを追加して、コンテナーの外部から HTTP 接続を受け入れるように server.xml ファイルを更新します。
<httpEndpoint host="*" httpPort="9080" httpsPort="-1"/>
- sample-one-container などの Eclipse プロジェクトを作成します。このプロジェクト内に、Dockerfile と、server.xml ファイルの WAR ファイルを含めます。 以下の Dockerfile の例を参照してください。
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
この Dockerfile 内で、Liberty イメージは、WAR ファイルを drop-ins ディレクトリーにコピーすることによってカスタマイズされています。それによって、アプリケーションがインストールされ、サーバーが開始されます。server.xml は、コンテナー外部からの HTTP 接続を許可するように、変更された server.xml によって置換されます。ライセンスも受け入れられます。
- server.xml と WAR ファイルを一緒にこのプロジェクト内に収集し、Docker イメージを作成するために docker ビルドを実行する準備をします。
- コマンド・ラインを開き、現行ディレクトリーを sample-one-container プロジェクト・ディレクトリーに設定し、Docker ビルドを実行します。 これは、Liberty Docker ハブ・イメージで始まり、アプリケーションおよび対応する server.xml 構成を追加する、カスタム Docker ビルドです。次の例を参照してください。この例は、正常なビルドの実行を示しています。
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$
- Docker ユーザー ID とパスワードを使用してログインします。 Docker Hub にログオンすると、次の例に似た出力が表示されます。
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$
- ビルドが終了したら、イメージのタグを作成します。 このタグは、レジストリー内でこのイメージの参照に使用される名前を示しています。以下の例を参照してください。
arthurs-mbp:docker-hub arthur$ docker tag d5ab21decab4 arthurdm/websphere-liberty
- イメージを Docker Hub リポジトリーにプッシュし、ダウンロードして実行できるようにイメージを公開します。 以下の例を参照してください。
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$
次のタスク
アプリケーションをリポジトリーにプッシュした後、イメージ arthurdm/websphere-liberty を指定することによって IBM Cloud Private 環境にアプリケーションをインストールします。このインストールは、Helm chart を使用して実行されます。