前提
- WSL2でdocker環境を構築していること
(構築方法は以下で紹介) - コマンドプロンプトを管理者権限で開いて、WSL上で操作していること
Dockerfile
以下のコードを、ローカルの作業ディレクトリ内に"Dockerfile"という名前で配置してください。
FROM ubuntu:18.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 \
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 \
python3.8 python3-pip \
"]
# install pip package
RUN pip3 install pip --upgrade
RUN pip3 install pipenv
RUN python3 --version
RUN ["/bin/bash", "-c", "apt-get install -y software-properties-common"]
RUN apt-add-repository ppa:ansible/ansible -y
# install r
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
#RUN add-apt-repository 'deb https://cran.rstudio.com/bin/linux/ubuntu $(lsb_release -cs)-cran35/'
RUN add-apt-repository 'deb https://cran.rstudio.com/bin/linux/ubuntu bionic-cran35/'
RUN ["/bin/bash", "-c", "\
apt-get update \
&& apt-get install -y r-base \
"]
RUN Rscript --version
CMD ["/bin/bash", "-c"]
ビルドと実行
Dockerfileがあるディレクトリ内に、以下のシェルスクリプトを配置します。
#!/bin/bash
step1="" # build
step2=do # run
CONTAINER=好きなコンテナ名
TAG=好きなタグ名
NAME=${CONTAINER}:${TAG}
if [ $step1 ]; then
sudo docker build -t $NAME .
fi
if [ $step2 ] ; then
sudo docker run -itv `pwd`:/mnt/work $NAME /bin/bash
fi
step1=doとするとビルドを実行し、
step2=doとするとコンテナを起動します。
CONTAINERに好きなコンテナ名を、TAGに好きなタグ名を指定してください。
以下のコマンドでシェルを実行できます。(シェルスクリプトはhoge.shとします)
chmod u+x hoge.sh
./hoge.sh