Docker Compose

UCIDM は Docker Compose を使い、複数のアプリケーションやミドルウェアのコンテナを起動して、それぞれのサービスが協調してシステムを構成しています。

これらはすべて docker-compose.yml に設定します。また docker-compose.yml はデフォルトの動作で環境変数を同じディレクトリ内の .env から読み込みます。

.env ファイルはパスワードなどの機密情報を含むため、ファイルを保管する場所のアクセス権限に注意してください。ここでは ucidm ユーザーのみがアクセス権限をもつと仮定して、ucidm ユーザーで設定作業を行います。実際のアクセス権限やユーザーはお客様の環境にあわせて行ってください。

コンテナレジストリへアクセス設定

OSSTech 社のコンテナレジストリ にアクセスするには Docker Hubログイン する必要があります。作業するユーザーの初回設定時のみ、次のようにしてログインしてください。実際に設定するパスワードは弊社のサポート担当者にご確認ください。

$ docker login --username osstech
Password:  # パスワードを入力

ログインに成功すると、ホームディレクトリの .docker ディレクトリ配下に config.json というファイルが作成されて認証情報が保存されます。すでに config.json が存在するのであれば今回の設定が追加されます。

$ cat $HOME/.docker/config.json

設定後、次のように実行してください。認証情報が正しければコンテナイメージを取得してコンテナを実行できます。

$ docker run docker.io/osstech/test-myrepo
...
Hello from Docker!
This message shows that your installation appears to be working correctly.
...

Docker Compose の設定ファイル

docker-compose.yml を配置するディレクトリの権限を変更します。

$ sudo chown -R ucidm:docker /opt/osstech/var/lib/ucidm
$ ls -ld /opt/osstech/var/lib/ucidm
drwxr-xr-x. 2 ucidm docker 6  2月 20 18:16 /opt/osstech/var/lib/ucidm

docker-compose.yml を配置するディレクトリに移動します。

$ cd /opt/osstech/var/lib/ucidm

Docker Compose の設定のサンプルファイルを /opt/osstech/var/lib/ucidm ディレクトリにコピーします。

$ cp /opt/osstech/share/ucidm/docker-compose.yml .
$ cp /opt/osstech/share/ucidm/dot_env.example .env

Docker Compose 上でコンテナとして稼働するアプリケーションやミドルウェアの設定のサンプルファイルも一緒にコピーします。

$ cp -r /opt/osstech/share/ucidm/{nginx,rabbitmq,server-data,ucidm-ui} .
$ ls -a
.  ..  .env  docker-compose.yml  nginx  rabbitmq  server-data  ucidm-ui

Docker Compose で各種コンテナを起動すると、/opt/osstech/var/lib/ucidm のディレクトリに、デフォルトで volumes のディレクトリが作られます。

この volumes は主に DB の情報などのデータを格納する用途で使われます。設定情報やスクリプト等のファイルは、それぞれの用途に特化したディレクトリに配置します。

これらのアプリケーションやミドルウェアの設定の詳細は次のページでみていきます。UCIDM で利用するサービスは次の通りです。

コンテナイメージの取得

docker-compose.yml を配置したらコンテナイメージを取得します。すでにコンテナイメージを取得済みであっても、より新しいイメージがあれば最新のイメージを取得します。

$ docker compose pull