github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/mobile/Dockerfile (about)

     1  # Dockerfile to build an image with the local version of go.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-set-selections
    12  RUN apt-get update && \
    13  	apt-get -y install build-essential python-software-properties bzip2 unzip 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 platform-tools && \
    29  	echo y | $ANDROID_HOME/tools/android update sdk --no-ui --all --filter android-19
    30  
    31  # Install Android NDK.
    32  RUN curl -L http://dl.google.com/android/ndk/android-ndk-r9d-linux-x86_64.tar.bz2 | 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 --install-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/gradle-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  ENV GOROOT /go
    51  ENV GOPATH /
    52  ENV PATH $PATH:$GOROOT/bin
    53  RUN curl -L https://github.com/golang/go/archive/master.zip -o /tmp/go.zip && \
    54  	unzip /tmp/go.zip && \
    55  	rm /tmp/go.zip && \
    56  	mv /go-master $GOROOT && \
    57  	echo devel > $GOROOT/VERSION && \
    58  	cd $GOROOT/src && \
    59  	./all.bash && \
    60  	CC_FOR_TARGET=$NDK_ROOT/bin/arm-linux-androideabi-gcc GOOS=android GOARCH=arm GOARM=7 ./make.bash
    61  
    62  WORKDIR $GOPATH/src/golang.org/x/mobile