Skip to content

Instantly share code, notes, and snippets.

@mokztk
Last active December 2, 2021 15:23
Show Gist options
  • Save mokztk/4a1a6d2bf391c382ecf7da3cfeb377cd to your computer and use it in GitHub Desktop.
Save mokztk/4a1a6d2bf391c382ecf7da3cfeb377cd to your computer and use it in GitHub Desktop.
jupyter/r-notebook に日本語環境とよく使う追加パッケージを導入した作業用イメージ(ARM64)

About this image

jupyter/r-notebook に日本語環境を導入したもの

日本語環境:

  • 日本語ロケール他:Ubuntu の language-pack-ja-base パッケージ
  • TZ は Asia/Tokyo に変更
  • 日本語フォントとして Noto Sans/Serif CJK JP:fonts-noto-cjk
  • Chromebook では処理が重いので日本語TeX環境の整備は省略する

R 関係:

  • ARM64 版のイメージは、2021-11 時点では R ver.3.6.3 の環境となっている
  • R の tidyverse パッケージ群は ARM 版 jupyter/r-notebook ではインストールされていない
  • conda/mamba でのインストールは難しいので、install.packages("tidyverse") でソースからインストールする
    • ベースの docker image にあわせて、MRAN snapshot の 2021-11-20 をインストール元とする
  • その他、パッケージはできるだけ conda-forge にあるコンパイル済のものを利用する

Jupyter Lab の設定:

  • 対応するカッコを自動で閉じる、コードセルの行番号、日本語表示などは overrides.json でまとめて設定
  • conda-forge にある r-languageserver は aarch64 未対応なので、jupyterlab-lsp は導入せず元からあるコード補完を利用
FROM jupyter/r-notebook:2021-11-20
# 日本語環境の導入(ロケール、TimeZone、フォント)
USER root
RUN set -x \
&& apt-get update \
&& apt-get install -y --no-install-recommends \
language-pack-ja-base \
fonts-noto-cjk \
&& /usr/sbin/update-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja" \
&& /bin/bash -c "source /etc/default/locale" \
&& ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
USER ${NB_UID}
RUN set -x \
# Jupyter Lab extensions のインストール
# 日本語表示の有効化などは、/opt/conda/share/jupyter/lab/settings/overrides.json で
&& mamba install -y \
jupyterlab-language-pack-ja-jp \
# R の追加パッケージ
&& Rscript -e 'install.packages("tidyverse", repos = "https://cran.microsoft.com/snapshot/2021-11-20")' \
&& mamba install -y \
r-tidylog \
r-ggally \
r-ggsci \
r-patchwork \
r-gridextra \
r-palmerpenguins \
# Python の追加パッケージ
&& mamba install -y \
pandas \
seaborn \
# cleaning
&& mamba clean --all -f -y \
&& fix-permissions "${CONDA_DIR}" \
&& fix-permissions "/home/${NB_USER}"
ENV LANG=ja_JP.UTF-8 \
LANGUAGE=ja_JP.UTF-8 \
LC_ALL=ja_JP.UTF-8 \
TZ=Asia/Tokyo
{
// 言語設定
"@jupyterlab/translation-extension:plugin": {
"locale": "ja_JP"
},
// テーマ設定
"@jupyterlab/apputils-extension:themes": {
"theme": "JupyterLab Light",
"overrides": {
"content-font-size1": "18px",
"code-font-size": "16px"
}
},
// コード記載部分:カッコを自動で閉じる設定、タブ、行番号など
"@jupyterlab/notebook-extension:tracker": {
"codeCellConfig": {
"autoClosingBrackets": true,
"lineNumbers": true,
"matchBrackets": true,
"insertSpaces": true,
"tabSize": 4
},
"markdownCellConfig": {
"autoClosingBrackets": true,
"lineNumbers": true,
"matchBrackets": true,
"insertSpaces": true,
"tabSize": 4
}
},
"@jupyterlab/console-extension:tracker": {
"promptCellConfig": {
"autoClosingBrackets": true,
"matchBrackets": true,
"insertSpaces": true,
"tabSize": 4
}
}
}
#!/bin/sh
docker run --rm -d \
-p 8888:8888 \
-v ./overrides.json:/opt/conda/share/jupyter/lab/settings/overrides.json \
--name jupyter \
mokztk/r-notebook:2021-11-20 \
start.sh jupyter lab --no-browser --LabApp.token=''
docker ps -a
#!/bin/bash
docker stop jupyter
docker ps -a
@mokztk
Copy link
Author

mokztk commented Dec 2, 2021

Jupyter Lab のパスワードをなしにするには、起動時に start.sh jupyter lab --LabApp.token=''
(start|stop)_rnotebook.sh は手元の Chromebook の Crostini にうまく docker-compose が導入できなかったため代用として作成。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment