半年振りにBazelをインストール
概要
BazelがAndroidのビルドに対応してから試せていないので試したいが、Bazelは半年前にインストールしたままなので、新しくインストールし直してみる。
Bazelのインストール
http://bazel.io/docs/install.htmlを参考にインストールする。UbuntuのバージョンはTrusty (14.04 LTS)を使う。
コンテナの用意
DockerでUbuntuにコンテナを用意する。
$ docker run -i -t --dns=8.8.8.8 ubuntu /bin/bash
Java8のインストール
$ sudo apt-get install software-properties-common $ sudo add-apt-repository ppa:webupd8team/java $ sudo apt-get update $ sudo apt-get install oracle-java8-installer
Bazelのインストール
Bazelのインストーラーをダウンロードしてくる。
$ wget https://github.com/bazelbuild/bazel/releases/download/0.1.1/bazel-0.1.1-installer-linux-x86_64.sh
実行権限を付与する。
$ chmod +x bazel-0.1.1-installer-linux-x86_64.sh
インストーラーを実行。
$ ./bazel-0.1.1-installer-linux-x86_64.sh --user
unzipが無いと言われるのでapt-getでインストールする。
$ apt-get install unzip
もう一度インストーラーを実行。
$ ./bazel-0.1.1-installer-linux-x86_64.sh --user
PATHを通す
$ export PATH="$PATH:$HOME/bin"
インストールできた。
$ bazel --version Unknown Bazel startup option: '--version'. For more info, run 'blaze help startup_options'. root@3160f1802c6b:~# bazel version Build label: 0.1.1 Build target: bazel-out/local_linux-fastbuild/bin/src/main/java/bazel-main_deploy.jar Build time: Thu Oct 15 20:15:14 2015 (1444940114) Build timestamp: 1444940114 Build timestamp as int: 1444940114
半年前より簡単にインストールできた。
Bazelのインストール手順をDockerfileにまとめる
手動でBazelのインストールを行ったが、Dockerfileを書き自動化してみる。最終的に以下のようになった。
FROM ubuntu:14.04 ENV DEBIAN_FRONTEND noninteractive # install Java8 RUN sudo apt-get -y install software-properties-common \ && sudo add-apt-repository -y ppa:webupd8team/java \ && sudo apt-get -y update \ && sudo apt-get -y install oracle-java8-installer # download bazel installer RUN sudo apt-get -y install wget \ && wget https://github.com/bazelbuild/bazel/releases/download/0.1.1/bazel-0.1.1-installer-linux-x86_64.sh # install bazel RUN sudo apt-get -y install unzip \ && sudo chmod +x bazel-0.1.1-installer-linux-x86_64.sh \ && sudo ./bazel-0.1.1-installer-linux-x86_64.sh --user \ && export PATH="$PATH:$HOME/bin"
docker buildコマンドでimageをビルドする。
$ docker build -t horie1024/bazel:0.1.1 .
これでbazelがインストールされたimageを作成できる。
Java8のライセンス承諾でつまづく
デフォルトだとJava8のライセンスを承諾する際にdebconfが起動してしまい、docker buildに失敗した。環境変数DEBIAN_FRONTENDにnoninteractiveを設定するとdebconfを起動しないようになり回避できた。
$ ENV DEBIAN_FRONTEND noninteractive