today   2019-04-25

access_time  1 min

riscv-gnu-toolchainをDockerコンテナにする

環境構築が面倒なときに

Docker使ってますか?

実は環境構築がめちゃくちゃ面倒な人ほどおすすめできる。正直Vagrantでもいいですが、気軽にふっとばしたりBase Imageからカスタムしたりコマンドラインから手軽に扱ったりCloud(k8s等)に乗っけるときなど等々を考えたら、私はDockerが便利だと思っている。

個人的には中にログインしてしばらく作業するような使い方なら、Vagrantを推奨。

Toolchainの構築

riscv-gnu-toolchainを構築していたのですが、WinでもMacでもささっと使いたい+バージョンで悩みたくない。

そこでDockerで環境構築する。リポジトリにもあるようにUbuntu(apt)を使った例があるのでこれをそのままDockerfileに書き起こした。

FROM ubuntu:18.04

ENV RISCV=/opt/riscv
ENV PATH=$RISCV/bin:$PATH
WORKDIR $RISCV

RUN apt update
RUN apt install -y autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
RUN apt install -y git

RUN git clone --recursive https://github.com/riscv/riscv-gnu-toolchain

RUN cd riscv-gnu-toolchain && ./configure --prefix=/opt/riscv && make

WORKDIR /work

完成!見れば何となく何をやっているか一目瞭然。

一応githubリポジトリとDocker Hubにもアップした。参考まで。