Exploratoryコラボレーション・サーバーのR実行環境をカスタマイズするには、デフォルトのR実行環境のDockerイメージを元に、変更の入ったDockerイメージを作成して使用します。このドキュメントではその手順を説明します。
以下のコマンドで、デフォルトのr-exploratory Dockerイメージをベースに、Dockerコンテナを起動します。 この例では、コラボレーション・サーバーのバージョンは6.8.4.2を前提として説明しますが、コマンド内のバージョン番号は適宜置き換えてください。
docker run -it r-exploratory:6.8.4.2 /bin/bash
上のコマンドを実行すると、Dockerコンテナ内で実行されるシェルが表示されます。
表示されたシェルを使って、必要な変更をDockerコンテナに加えてください。
例として、zipangu Rパッケージを追加してみましょう。
Rをシェルから起動します。
R
Rのコマンド入力画面が表示されますので、以下のコマンドでzipangu Rパッケージをインストールします。
install.packages("zipangu")
インストールが終わったら、Ctrl-DキーでRから抜けます。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
作成した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パッケージがインストールされていることが確認できました。
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の実行環境がコラボレーション・サーバー上で使用されるようになります。