ここらへんの記事は多少古くなってしまったので、知識をアップデート
https://qiita.com/antiplastics/items/33410a168a2fe7aad82f
https://qiita.com/antiplastics/items/fb13f8c9cde61f3f9bd1
R/Bioconductorパッケージを開発するためには、開発者版のRとBioconductorパッケージを使って、自分のパッケージがうまく動作するかテストする必要がある(R CMD build/check/BiocCheck)
しかし、開発者版のRを入れることで、普段使いのRが使えなくなってしまうため、環境を棲み分けたい
そのため、Dockerのコンテナの中だけで、開発者版のRを使うことをここでは考える
Dockerなので、OSはあまり関係ないが、ここでは手元のMacのマシンで行った作業をメモ
Step.1 : Dockerをインストール
まず、dockerコマンドをインストール
brew install docker
すでに入っている場合は、アップグレード
brew upgrade docker
Step.2 : Docker Community Edition for Macをインストール
Macでdockerを動かすための作業
boot2dockerはもう使われてなさそうなので( https://qiita.com/umechiki/items/426b5a202425aca75927 )、Docker Community Edition for Macに移行した
インストーラーがあるので、クリックしてインストールするだけ
インストール後に、dockerコマンドが動くか確認
docker version
ここで、30秒ぐらいかたまる場合は、https://qiita.com/umechiki/items/426b5a202425aca75927
のように、以前にboot2dockerを使用していたせいで、bash_profileにDocker関連の環境変数を書いている可能性大なので、削除してから、bashを再起動(地味にハマった)
exec $SHELL -l
Step.3 : Dockerfileを作成
以降、手元のLRBaseDbiというパッケージに、開発者版のRで、R CMD build/check/BiocCheckを実行することを考える
LRBaseDbiとは今投稿中の、BiocCheckのところでてこづっている自分のパッケージです...
https://github.com/Bioconductor/Contributions/issues/787
Dockerfileはbioconductor/devel_base2をベースに作る
以前の記事のbioconductor/devel_baseはメンテナンスされていないらしく、R Under development (unstable) (2016-06-29 r70854)とBioconductor 3.4の組み合わせとかなり古い
bioconductor/devel_base2のほうは継続的にメンテナンスしているらしい
(Docker使ってても、結局こういう依存するツールが古いと動かないパターンありますね、全てのツールをバージョン指定でインストールできるといいですが)
以下のようにDockerfileを書いてから、
FROM bioconductor/devel_base2
RUN R -e "biocLite('AnnotationDbi'); \
biocLite('Biobase'); \
install.packages('RSQLite')"
docker buildで自分用の環境を構築する
docker build -t koki/devel .
これで、自分の依存パッケージがインストールされた開発版Rの環境ができたので、コンテナの中にログインしてみる
docker run -v YOUR_WORKING_DIR/Devel:/Devel -ti koki/devel bash
-vのところは、自分のローカル環境のDevelというディレクトリと、コンテナ内に新たに作成されたDevelというディレクトリを同期するオプション
これにより、手元でパッケージに修正を加えると、コンテナ内部にも反映されるため、あとは、コンテナの中で、R CMD build/check/BiocCheckを実行すれば良いだけ
cd NTF
R CMD build --keep-empty-dirs --no-resave-data LRBaseDbi
R CMD check --no-vignettes --timings --no-multiarch LRBaseDbi_0.99.8.tar.gz
R CMD BiocCheck --build-output-file=R.out --new-package LRBaseDbi_0.99.8.tar.gz
引き続きパッケージング頑張ります...
なお新規ではないパッケージの場合は BiocCheck
で --new-package
が、いらないです。
BiocCheck Version Check
R CMD BiocCheck --build-output-file=R.out LRBaseDbi_1.2.0.tar.gz