M1チップ macにrとpythonのdocker環境を構築する
M1チップのMacBookProを購入したので,ぼちぼち解析環境を構築しています。
その中で,WSLでは通った設定がMBPでは通らなかったので記録します。
なぐり書きなので,また修正入ると思います。
Dockerfile (2021.02.19現在)
FROM ubuntu:20.04 # set timezone RUN apt-get update \ && apt-get install tzdata \ && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime RUN date # install packages RUN ["/bin/bash", "-c", "\ apt-get update \ && apt-get install -y \ vim curl libcurl4-openssl-dev libxml2-dev\ build-essential \ git curl llvm sqlite3 libssl-dev libbz2-dev \ libreadline-dev libsqlite3-dev libncurses5-dev \ libncursesw5-dev python-tk python3-tk tk-dev aria2 \ lsb-release locales \ libv8-dev gdebi-core \ gnupg ca-certificates \ "] #language RUN locale-gen ja_JP.UTF-8 ENV LANG ja_JP.UTF-8 ENV LANGUAGE ja_JP:ja ENV LC_ALL ja_JP.UTF-8 RUN ["/bin/bash", "-c", "apt-get install -y software-properties-common"] RUN ["/bin/bash", "-c", "apt-get install -y ansible"] # install r RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 #RUN add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/' RUN add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/' RUN ["/bin/bash", "-c", "\ apt-get update && apt-get upgrade -y \ && apt-get install -y r-base \ "] #RUN Rscript --version CMD ["/bin/bash", "-c"]
問題は以下の部分
#RUN add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/' RUN add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/'
本当はRの4.0を入れたかったのだが,MBPだと入らず,下記のページと同じエラーを吐く。
stackoverflow.com
問題のr-base-coreは,上記のようにレポジトリを追加しても3.6.2版が入ってしまい,R4.0の依存環境を満たせない。
そこでインストールするRのバージョンを3.6して実行すると問題なく環境を構築できた。
原因は不明。
しばらくは3.6で進めるとしようかな。
追記
結局原因はわからず,r-baseイメージをベースに以下のDockerfileでコンテナを作成することでR4.0を使うことはできました。
FROM r-base:latest # set timezone RUN apt-get update \ && apt-get install tzdata \ && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime RUN date # install packages RUN ["/bin/bash", "-c", "\ apt-get update \ && apt-get install -y --allow-downgrades \ libcurl4=7.74.0-1 \ vim curl libcurl4-openssl-dev libxml2-dev\ build-essential \ git llvm sqlite3 libssl-dev libbz2-dev \ libreadline-dev libsqlite3-dev libncurses5-dev \ libncursesw5-dev python-tk python3-tk tk-dev aria2 \ lsb-release locales libffi-dev libxml2-dev \ libv8-dev \ "] # language RUN locale-gen ja_JP.UTF-8 ENV LANG ja_JP.UTF-8 ENV LANGUAGE ja_JP:ja ENV LC_ALL ja_JP.UTF-8 # LINE and COLUMNS ARG cols=$(tput cols) ARG lines=$(tput lines) ENV COLUMNS=$cols ENV LINES=$lines RUN ["/bin/bash", "-c", "apt-get install -y software-properties-common"] RUN apt-add-repository ppa:ansible/ansible -y RUN ["/bin/bash", "-c", "Rscript --version"] RUN ["/bin/bash", "-c", "localedef -f UTF-8 -i ja_JP ja_JP"] CMD ["/bin/bash", "-c"]