Exploratoryコラボレーション・サーバーのR実行環境をカスタマイズする

Exploratoryコラボレーション・サーバーのR実行環境をカスタマイズするには、デフォルトのR実行環境のDockerイメージを元に、変更の入ったDockerイメージを作成して使用します。このドキュメントではその手順を説明します。

1. デフォルトのr-exploratory DockerイメージからDockerコンテナを起動する

以下のコマンドで、デフォルトのr-exploratory Dockerイメージをベースに、Dockerコンテナを起動します。 この例では、コラボレーション・サーバーのバージョンは6.8.4.2を前提として説明しますが、コマンド内のバージョン番号は適宜置き換えてください。

docker run -it r-exploratory:6.8.4.2 /bin/bash

上のコマンドを実行すると、Dockerコンテナ内で実行されるシェルが表示されます。

2. Dockerコンテナ上で、必要な変更を実行する

表示されたシェルを使って、必要な変更をDockerコンテナに加えてください。

例として、zipangu Rパッケージを追加してみましょう。

Rをシェルから起動します。

R

Rのコマンド入力画面が表示されますので、以下のコマンドでzipangu Rパッケージをインストールします。

install.packages("zipangu")

インストールが終わったら、Ctrl-DキーでRから抜けます。Dockerコンテナを残しておくために、シェルはまだ終了しないでください。

3. Dockerコンテナを元に、カスタムのDockerイメージを作成する

先程のDockerコンテナのIDを取得するために、同じLinuxマシン上で、もう一つシェルを起動して、以下のコマンドを実行します。

docker ps

すると、以下のような表が出力されます。

CONTAINER ID        IMAGE                   COMMAND ...
5877b324ad8c        r-exploratory:6.8.4.2   "/bin/bash" ...
...

表中でIMAGEがr-exploratory:6.8.4.2、COMMANDが"/bin/bash"となっている行が、先程のDockerコンテナを表す行です。この行のCONTAINER IDの値が、必要なコンテナIDです。この例では、5877b324ad8cがコンテナIDとなります。

こちらのコンテナIDを指定して、コンテナに加えた変更を保持したDockerイメージを作成します。この例では、この新しいDockerイメージのバージョンを6.8.4.2.1 としています。

docker commit  -c 'CMD ["R", "-e", "Rserve::run.Rserve(remote=TRUE)"]' -c 'EXPOSE 6311' 5877b324ad8c r-exploratory:6.8.4.2.1

4. 作成したカスタムDockerイメージに加えた変更を確認

作成したDockerイメージを元にDockerコンテナを起動して、変更がうまく追加されているか確認します。

docker run -it r-exploratory:6.8.4.2.1 /bin/bash

表示されるシェル内でRを起動します。

R

Rの中で、Rパッケージが追加されていることを確認します。

> packageVersion("zipangu")
[1] ‘0.2.3’

インストールされたzipanguパッケージのバージョン番号が表示され、このカスタムのDockerイメージにzipanguパッケージがインストールされていることが確認できました。

5. カスタムのr-exploratory Dockerイメージをコラボレーション・サーバーから使用する

docker-compose.ymlファイルをエディタで開いて、以下のようにr-exploratory Dockerイメージのバージョンを指定している行を見つけます。

...
  rserve:
    image: r-exploratory:6.8.4.2
...

こちらのバージョンを、作成したカスタムDockerコンテナのもので置き換えます。

...
  rserve:
    image: r-exploratory:6.8.4.2.1
...

これで、コラボレーション・サーバーを起動しなおせば、変更を入れたRの実行環境がコラボレーション・サーバー上で使用されるようになります。