Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rパッケージのインストールをmambaで行うように変更 #145

Merged
merged 2 commits into from
Mar 30, 2022

Conversation

eitsupi
Copy link
Contributor

@eitsupi eitsupi commented Mar 29, 2022

例題中で使用されているRPostgreSQLthemisは共にconda-forgeにあるためMRANからインストールするよりもmambaでインストールした方が良いと思います。

  • (amd64を前提として)バイナリインストールできるため速くインストールできる
  • RPostgreSQLのビルドに必要なlibpq-devのインストールは不要
  • バージョン固定の記法が簡素

なお2021-10-05時点のバージョンはRPostgreSQL 0.6-2、DBI 1.1.1、themis 0.1.4ですがDBIはRPostgreSQLの依存関係なので明示しませんでした。

@eitsupi eitsupi changed the title Rパッケージのインストールをmambaで行うことでビルド時間短縮 Rパッケージのインストールをmambaで行うように変更 Mar 29, 2022
@eitsupi
Copy link
Contributor Author

eitsupi commented Mar 29, 2022

調べてみるとPipfileに記載されているPythonパッケージも全てconda-forgeにあるようなのでPythonパッケージとRパッケージを全部まとめてmambaでバージョン固定しても良いかも知れません。
(前提として、ベースイメージはmambaでパッケージ管理を行っているためなるべくmambaに寄せた方が良いと思います)

[packages]
ipython-sql = "==0.3.9"
psycopg2 = "==2.8.5"
imblearn = "==0.0"

@massongit
Copy link
Contributor

Pythonパッケージもmambaで固定した場合 (依存パッケージをDockerfile内に記述した場合)、Dependabotによるアップデートの対象外になるので (Pythonパッケージのアップデートを自動的に行ってくれなくなるので)、Pipfileの方が良さそうな気がしました。

@eitsupi
Copy link
Contributor Author

eitsupi commented Mar 29, 2022

ああ、すみません。ベースイメージ固定されていますしパッケージのバージョンを固定したいのかと思っていました。
テストあるから固定しなくても良いということでしたらRパッケージも固定しなくても大丈夫ですね。

@massongit
Copy link
Contributor

massongit commented Mar 29, 2022

まず前提としてPipfileやPipfile.lockはバージョンを依存関係も含めてバージョンを固定するためにあります。
そして、Dependabotと呼ばれるパッケージをアップデートを更新する仕組みはPipfileには対応していても、Dockerfile内に記述されたバージョン指定には対応していないので、mambaを使った場合は手動でのアップデートが必要になります。

RについてはMRAN依存しない形が望ましいので、mambaで良いと個人的には思います。

@massongit
Copy link
Contributor

massongit commented Mar 29, 2022

バージョンは固定したいですが、いつまでも古いバージョンのままだとそれはそれでまずいので、人手をあまりかけずにアップデートできるようにできたらいいですよね、と。

@eitsupi
Copy link
Contributor Author

eitsupi commented Mar 29, 2022

mambaはymlファイルを元にパッケージをインストールできるのでDockefile内ではなくそれを使うという意味でした。
ただ、dependabotは対応していないようです。(dependabot/dependabot-core#2227)

@KazuhiroM
Copy link
Contributor

素敵なPRありがとうごさます!
MRANたまに繋がらなくなるの悩みの種でした

近日中に僕の方でも動作確認して取り込みたいと思いますmm

Copy link
Contributor

@KazuhiroM KazuhiroM left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

素敵です!

@KazuhiroM KazuhiroM merged commit b202418 into The-Japan-DataScientist-Society:master Mar 30, 2022
@sugarkeys
Copy link

mambaの導入に伴いまして、docker/doc/100knocks_guide.pdf の15ページ目、【コンテナ作成に失敗した場合】の「④Rのコードが実行されないケース」からハイパーリンクまでが不要になっているかもしれません。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants