diff --git a/Dockerfile b/Dockerfile index 6c91028..24c9e86 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,8 +24,9 @@ RUN $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSIO "platform-tools" # Install NDK -RUN $ANDROID_HOME/tools/bin/sdkmanager "ndk-bundle" -ENV ANDROID_NDK_ROOT $ANDROID_HOME/ndk-bundle +ENV NDK_VER="21.0.6113669" +RUN $ANDROID_HOME/tools/bin/sdkmanager "ndk;$NDK_VER" +RUN ln -sf $ANDROID_HOME/ndk/$NDK_VER $ANDROID_HOME/ndk-bundle # Go section of this Dockerfile from Docker golang: https://github.com/docker-library/golang/blob/master/1.10/alpine3.8/Dockerfile # Adapted from alpine apk to debian apt @@ -35,8 +36,8 @@ ENV ANDROID_NDK_ROOT $ANDROID_HOME/ndk-bundle ## - docker run --rm debian:stretch grep '^hosts:' /etc/nsswitch.conf RUN echo 'hosts: files dns' > /etc/nsswitch.conf -ENV GOLANG_VERSION 1.15.10 -ENV GOLANG_SHA256 c1dbca6e0910b41d61a95bf9878f6d6e93d15d884c226b91d9d4b1113c10dd65 +ENV GOLANG_VERSION=1.15.10 +ENV GOLANG_SHA256=c1dbca6e0910b41d61a95bf9878f6d6e93d15d884c226b91d9d4b1113c10dd65 RUN set -eux; \ apt-get update; \ @@ -78,17 +79,24 @@ RUN set -eux; \ go version # persist new go in PATH -ENV PATH /usr/local/go/bin:$PATH +ENV PATH=/usr/local/go/bin:$PATH -ENV GOMOBILEPATH /gomobile +ENV GOMOBILEPATH=/gomobile # Setup /workspace RUN mkdir $GOMOBILEPATH # Set up GOPATH in /workspace -ENV GOPATH $GOMOBILEPATH -ENV PATH $GOMOBILEPATH/bin:$PATH +ENV GOPATH=$GOMOBILEPATH +ENV PATH=$GOMOBILEPATH/bin:$PATH RUN mkdir -p "$GOMOBILEPATH/src" "$GOMOBILEPATH/bin" "$GOMOBILEPATH/pkg" && chmod -R 777 "$GOMOBILEPATH" # install gomobile +RUN cd $GOMOBILEPATH/src; \ + mkdir -p golang.org/x; \ + cd golang.org/x; \ + git clone https://github.com/golang/mobile.git; \ + cd mobile; \ + git checkout bdb1ca9a1e083af5929a8214e8a056d638ebbf2d; + RUN go get golang.org/x/mobile/cmd/gomobile RUN go get golang.org/x/mobile/cmd/gobind RUN go get golang.org/x/mobile/bind diff --git a/README.md b/README.md index 8db3dbf..53fcfa2 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,11 @@ Versions are: - 2021.03 - Go 1.15.10 - Android API 29 + - NDK 21.0.6113669 - 2018.07 - Go 1.10.3 - Android API 28 + - NDK 17.2.4988734 ## Install and Use @@ -31,3 +33,20 @@ This container has its own GOPATH with only gomobile in it, so to use, you'll ne - gomobile init - make +### Version 2018.07 + +This image includes: + +- Android SDK, NDK, tools, and API version 28 at `/usr/local/android-sdk` +- Go lang 1.10.3 at `/usr/local/go` +- $GOPATH set to `/workspace/go` +- A go directory with an initialized gomobile installed at `/go` + +This image comes with gomobile checkedout and preinitialized (time and space consuming). In order to install this predone work from the image into your Drone CI workspace (a docker volume mounted to `/workspace`), you will want your first pipeline step to be: + + go-link: + image: openpriv/android-go-mobile + commands: + - cp -as /go /workspace/go + +`cp -as` recreates the directory structure from /go in /workspace/go but for each file, it just creates a symlink. This is the quickest and most efficent way to mirror the work supplied with the image into your workspace.