LoginSignup
0

More than 3 years have passed since last update.

IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた(番外編.コンテナイメージのUpdate)

Last updated at Posted at 2020-09-23

はじめに

一通り仕上げた「IKS + Db2 on IBM Cloud で DBアクセスアプリを動かしてみた」の番外編です。

この一連の記事内で、個人的に気になっていた点があります。
それは、「第7回 WebSphere Liberty コンテナの準備」の中で、最後に image に脆弱性が検出されていたことです。
第7回では、「動かす」という主眼のため、対応せずにスキップしましたが、
それでいいんだっけ、、、という思いが消えず、対応を行いました。

その内容について、簡単に記載して補足とします。

エラーの内容

エラーの画面ショットを再掲します。
IBM Cloud にログインし、左側のアイコンから、コンテナアイコンを選びます。

73.png

次に表示されるメニューから 「レジストリ」を選択し、表示されたメイン画面の「イメージ」タブを選択します。
63.png

第7回で利用したイメージがありますが、 「1件の問題」が検出されています。
それをクリックし、詳細を確認します。

64.png

よく見ると、 以下のような解決方法が表示されています。

Upgrade util-linux to >= 2.31.1-0.4ubuntu3.7

これをイメージに組み込みます。

Dockerfile の修正

修正版のDockerfile は以下の通りです。

Dockerfile
FROM docker.io/websphere-liberty:kernel
LABEL maintainer "shimauma@example.com"

ADD     --chown=1001:0 ./files /config
COPY    --chown=1001:0 ./war/LibertyCounter.war /config/dropins
USER    root
RUN     apt-get -y update && apt-get -y upgrade
USER    1001
RUN     configure.sh

COPYコマンドの後で、 一旦ユーザーを root に変更し、 apt-get -y upgrade を行っています。
その後、 USER を WebSphere-Liberty 指定の 1001 に戻しています。

これを行うことにより、 イメージ内の OS 関連コンポーネントがアップデートされます。

ビルドしてみます。
見づらいですが、 root に変わり、 該当の util-linux が 2.31.1-0.4ubuntu3.7 にアップデートされ、
その後ユーザー 1001 に戻っていることがわかります。

# docker build -t liberty-counter:v3.2 .

Sending build context to Docker daemon   3.88MB
Step 1/8 : FROM docker.io/websphere-liberty:kernel
 ---> 878137168ed8

... (略) ...

Step 5/8 : USER root
 ---> Using cache
 ---> 1386de20a6b2
Step 6/8 : RUN  apt-get -y update && apt-get -y upgrade
 ---> Running in f503d86de45c

... (略) ...

Calculating upgrade...
The following packages will be upgraded:
  bsdutils fdisk gpgv libblkid1 libfdisk1 libmount1 libsmartcols1 libuuid1
  mount util-linux
10 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

... (略) ...

Unpacking util-linux (2.31.1-0.4ubuntu3.7) over (2.31.1-0.4ubuntu3.6) ...
Setting up util-linux (2.31.1-0.4ubuntu3.7) ...

... (略) ...

Step 7/8 : USER 1001
 ---> Running in 9588e2cb1c65
Removing intermediate container 9588e2cb1c65
 ---> 593dc3ebc8b7

... (略) ...

Successfully built ee1a49a3c599
Successfully tagged liberty-counter:v3.2

その後、イメージを IBM Cloud Container Registry に push します。
この辺りの手順は 「第7回」 そのままです。

push 後、再度 IBM Cloud コンソールから確認すると、 脆弱性検査をパスしていることがわかります。

75.png

なお、 Dockerfile 修正時に、 root に切り替えていますが、それを忘れると
以下のようなエラーになります。

Step 5/6 : RUN  apt-get -y update
 ---> Running in be1041a3bdda
Reading package lists...
E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)
The command '/bin/sh -c apt-get -y update' returned a non-zero code: 100

以上が番外編でした! これで引っ掛かっていたことが解消されて、(個人的に)良かったです!


Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0