Exploratoryコラボレーション・サーバーのR実行環境に信頼する認証局を追加するには、デフォルトのR実行環境のDockerイメージを元に、信頼する認証局を追加したDockerイメージを作成して使用します。このドキュメントではその手順を説明します。
以下のコマンドで、デフォルトのr-exploratory Dockerイメージをベースに、Dockerコンテナを起動します。 この例では、コラボレーション・サーバーのバージョンは6.10.4.6を前提として説明しますが、コマンド内のバージョン番号は適宜置き換えてください。
docker run -it r-exploratory:6.10.4.6 /bin/bash
上のコマンドを実行すると、Dockerコンテナ内で実行されるシェルが表示されます。
表示されたシェルを使って、信頼する認証局をDockerコンテナの環境に追加します。
まず、認証局の証明書ファイルを/usr/share/ca-certificates
ディレクトリの下にコピーします。ファイル名は任意ですが、拡張子は必ず.crt
としてください。
その後、以下のコマンドで、追加された認証局の証明書を有効にします。
dpkg-reconfigure ca-certificates
Dockerコンテナを残しておくために、シェルはまだ終了しないでください。
先程のDockerコンテナのIDを取得するために、同じLinuxマシン上で、もう一つシェルを起動して、以下のコマンドを実行します。
docker ps
すると、以下のような表が出力されます。
CONTAINER ID IMAGE COMMAND ...
5877b324ad8c r-exploratory:6.10.4.6 "/bin/bash" ...
...
表中でIMAGEがr-exploratory:6.10.4.6
、COMMANDが"/bin/bash"
となっている行が、先程のDockerコンテナを表す行です。この行のCONTAINER IDの値が、必要なコンテナIDです。この例では、5877b324ad8c
がコンテナIDとなります。
こちらのコンテナIDを指定して、コンテナに加えた変更を保持したDockerイメージを作成します。この例では、この新しいDockerイメージのバージョンを6.10.4.6.1
としています。
docker commit -c 'CMD ["R", "-e", "Rserve::run.Rserve(remote=TRUE)"]' -c 'EXPOSE 6311' 5877b324ad8c r-exploratory:6.10.4.6.1
作成したDockerイメージを元にDockerコンテナを起動して、変更がうまく追加されているか確認します。
docker run -it r-exploratory:6.10.4.6.1 /bin/bash
表示されるシェル内で、先程追加した認証局の証明書が存在することを確認します。
ls /usr/share/ca-certificates
docker-compose.ymlファイルをエディタで開いて、以下のようにr-exploratory Dockerイメージのバージョンを指定している行を見つけます。
...
rserve:
image: r-exploratory:6.10.4.6
...
こちらのバージョンを、作成したカスタムDockerコンテナのもので置き換えます。
...
rserve:
image: r-exploratory:6.10.4.6.1
...
これで、コラボレーション・サーバーを起動しなおせば、信頼する認証局を追加したRの実行環境がコラボレーション・サーバー上で使用されるようになります。