Add Docker instructions for older branches
If you've upgraded away from Ubuntu 14.04 Trusty, you may find that older branches (or certain code) doesn't build anymore. These instructions can form a starting point to build these older branches within Docker. Bug: 72993575 Test: Follow instructions, build marshmallow-dev Test: Follow instructions, build lollipop-mr1-dev Change-Id: If4047b1bb5324d75a9d0947cb5280ff1cabccb6a
This commit is contained in:
parent
304be2ec74
commit
6dc4621afc
3 changed files with 44 additions and 0 deletions
1
tools/docker/.gitignore
vendored
Normal file
1
tools/docker/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
gitconfig
|
25
tools/docker/Dockerfile
Normal file
25
tools/docker/Dockerfile
Normal file
|
@ -0,0 +1,25 @@
|
|||
FROM ubuntu:14.04
|
||||
ARG userid
|
||||
ARG groupid
|
||||
ARG username
|
||||
|
||||
RUN apt-get update && apt-get install -y git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip python openjdk-7-jdk
|
||||
|
||||
RUN curl -o jdk8.tgz https://android.googlesource.com/platform/prebuilts/jdk/jdk8/+archive/master.tar.gz \
|
||||
&& tar -zxf jdk8.tgz linux-x86 \
|
||||
&& mv linux-x86 /usr/lib/jvm/java-8-openjdk-amd64 \
|
||||
&& rm -rf jdk8.tgz
|
||||
|
||||
RUN curl -o /usr/local/bin/repo https://storage.googleapis.com/git-repo-downloads/repo \
|
||||
&& echo "e147f0392686c40cfd7d5e6f332c6ee74c4eab4d24e2694b3b0a0c037bf51dc5 /usr/local/bin/repo" | sha256sum --strict -c - \
|
||||
&& chmod a+x /usr/local/bin/repo
|
||||
|
||||
RUN groupadd -g $groupid $username \
|
||||
&& useradd -m -u $userid -g $groupid $username \
|
||||
&& echo $username >/root/username \
|
||||
&& echo "export USER="$username >>/home/$username/.gitconfig
|
||||
COPY gitconfig /home/$username/.gitconfig
|
||||
RUN chown $userid:$groupid /home/$username/.gitconfig
|
||||
ENV HOME=/home/$username
|
||||
|
||||
ENTRYPOINT chroot --userspec=$(cat /root/username):$(cat /root/username) / /bin/bash -i
|
18
tools/docker/README.md
Normal file
18
tools/docker/README.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
The Dockerfile in this directory sets up an Ubuntu Trusty image ready to build
|
||||
a variety of Android branches (>= Lollipop). It's particulary useful to build
|
||||
older branches that required 14.04 if you've upgraded to something newer.
|
||||
|
||||
First, build the image:
|
||||
```
|
||||
# Copy your host gitconfig, or create a stripped down version
|
||||
$ cp ~/.gitconfig gitconfig
|
||||
$ docker build --build-arg userid=$(id -u) --build-arg groupid=$(id -g) --build-arg username=$(id -un) -t android-build-trusty .
|
||||
```
|
||||
|
||||
Then you can start up new instances with:
|
||||
```
|
||||
$ docker run -it --rm -v $ANDROID_BUILD_TOP:/src android-build-trusty
|
||||
> cd /src; source build/envsetup.sh
|
||||
> lunch aosp_arm-eng
|
||||
> m -j50
|
||||
```
|
Loading…
Reference in a new issue