| OLD | NEW |
| (Empty) |
| 1 # Dockerfile to build an image with the local version of golang.org/x/mobile. | |
| 2 # | |
| 3 # > docker build -t mobile $GOPATH/src/golang.org/x/mobile | |
| 4 # > docker run -it --rm -v $GOPATH/src:/src mobile | |
| 5 | |
| 6 FROM ubuntu:12.04 | |
| 7 | |
| 8 # Install system-level dependencies. | |
| 9 ENV DEBIAN_FRONTEND noninteractive | |
| 10 RUN echo "debconf shared/accepted-oracle-license-v1-1 select true" | debconf-set
-selections && \ | |
| 11 echo "debconf shared/accepted-oracle-license-v1-1 seen true" | debconf-s
et-selections | |
| 12 RUN apt-get update && \ | |
| 13 apt-get -y install build-essential python-software-properties bzip2 unzi
p curl \ | |
| 14 git subversion mercurial bzr \ | |
| 15 libncurses5:i386 libstdc++6:i386 zlib1g:i386 && \ | |
| 16 add-apt-repository ppa:webupd8team/java && \ | |
| 17 apt-get update && \ | |
| 18 apt-get -y install oracle-java6-installer | |
| 19 | |
| 20 # Install Ant. | |
| 21 RUN curl -L http://archive.apache.org/dist/ant/binaries/apache-ant-1.9.2-bin.tar
.gz | tar xz -C /usr/local | |
| 22 ENV ANT_HOME /usr/local/apache-ant-1.9.2 | |
| 23 | |
| 24 # Install Android SDK. | |
| 25 RUN curl -L http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz | tar xz
-C /usr/local | |
| 26 ENV ANDROID_HOME /usr/local/android-sdk-linux | |
| 27 RUN echo y | $ANDROID_HOME/tools/android update sdk --no-ui --all --filter build
-tools-19.1.0 && \ | |
| 28 echo y | $ANDROID_HOME/tools/android update sdk --no-ui --all --filter p
latform-tools && \ | |
| 29 echo y | $ANDROID_HOME/tools/android update sdk --no-ui --all --filter a
ndroid-19 | |
| 30 | |
| 31 # Install Android NDK. | |
| 32 RUN curl -L http://dl.google.com/android/ndk/android-ndk-r9d-linux-x86_64.tar.bz
2 | tar xj -C /usr/local | |
| 33 ENV NDK_ROOT /usr/local/android-ndk-r9d | |
| 34 RUN $NDK_ROOT/build/tools/make-standalone-toolchain.sh --platform=android-9 --in
stall-dir=$NDK_ROOT --system=linux-x86_64 | |
| 35 | |
| 36 # Install Gradle 2.1 | |
| 37 # : android-gradle compatibility | |
| 38 # http://tools.android.com/tech-docs/new-build-system/version-compatibility | |
| 39 RUN curl -L http://services.gradle.org/distributions/gradle-2.1-all.zip -o /tmp/
gradle-2.1-all.zip && unzip /tmp/gradle-2.1-all.zip -d /usr/local && rm /tmp/gra
dle-2.1-all.zip | |
| 40 ENV GRADLE_HOME /usr/local/gradle-2.1 | |
| 41 | |
| 42 # Update PATH for the above. | |
| 43 ENV PATH $PATH:$ANDROID_HOME/tools | |
| 44 ENV PATH $PATH:$ANDROID_HOME/platform-tools | |
| 45 ENV PATH $PATH:$NDK_ROOT | |
| 46 ENV PATH $PATH:$ANT_HOME/bin | |
| 47 ENV PATH $PATH:$GRADLE_HOME/bin | |
| 48 | |
| 49 # Install Go. | |
| 50 # 1) 1.4 for bootstrap. | |
| 51 ENV GOROOT_BOOTSTRAP /go1.4 | |
| 52 RUN (curl -sSL https://golang.org/dl/go1.4.linux-amd64.tar.gz | tar -vxz -C /tmp
) && \ | |
| 53 mv /tmp/go $GOROOT_BOOTSTRAP | |
| 54 | |
| 55 | |
| 56 # 2) Download and cross compile the Go on revision GOREV. | |
| 57 # | |
| 58 # GOVERSION string is the output of 'git log -n 1 --format="format: devel +%h %c
d" HEAD' | |
| 59 # like in go tool dist. | |
| 60 # Revision picked on Jan 21, 2015. | |
| 61 ENV GO_REV 34bc85f6f3b02ebcd490b40f4d32907ff2e69af3 | |
| 62 ENV GO_VERSION devel +34bc85f Wed Jan 21 21:30:46 2015 +0000 | |
| 63 | |
| 64 ENV GOROOT /go | |
| 65 ENV GOPATH / | |
| 66 ENV PATH $PATH:$GOROOT/bin | |
| 67 | |
| 68 RUN mkdir -p $GOROOT && \ | |
| 69 curl -sSL "https://go.googlesource.com/go/+archive/$GO_REV.tar.gz" | tar
-vxz -C $GOROOT && \ | |
| 70 echo $GO_VERSION > $GOROOT/VERSION && \ | |
| 71 cd $GOROOT/src && \ | |
| 72 ./all.bash && \ | |
| 73 CC_FOR_TARGET=$NDK_ROOT/bin/arm-linux-androideabi-gcc GOOS=android GOARC
H=arm GOARM=7 ./make.bash | |
| 74 | |
| 75 # Expect the GOPATH/src volume to be mounted. (-v $GOPATH/src:/src) | |
| 76 VOLUME ["/src"] | |
| 77 | |
| 78 # Generate a debug keystore to avoid it being generated on each `docker run` | |
| 79 # and fail `adb install -r <apk>` with a conflicting certificate error. | |
| 80 RUN keytool -genkeypair -alias androiddebugkey -keypass android -keystore ~/.and
roid/debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US"
-validity 365 | |
| 81 | |
| 82 WORKDIR $GOPATH/src/golang.org/x/mobile | |
| OLD | NEW |