├── .github └── workflows │ └── docker-publish.yml ├── .gitignore ├── 1.11 ├── alpine │ └── Dockerfile ├── debian │ └── Dockerfile └── slim │ └── Dockerfile ├── 1.13 ├── alpine │ └── Dockerfile ├── debian │ └── Dockerfile └── slim │ └── Dockerfile ├── 1.14 ├── alpine │ └── Dockerfile ├── debian │ └── Dockerfile └── slim │ └── Dockerfile ├── 1.15 ├── alpine │ └── Dockerfile ├── debian │ └── Dockerfile └── slim │ └── Dockerfile ├── 1.16 ├── alpine │ └── Dockerfile ├── debian │ └── Dockerfile └── slim │ └── Dockerfile ├── LICENSE └── README.md /.github/workflows/docker-publish.yml: -------------------------------------------------------------------------------- 1 | name: Docker 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | # Run tests for any PRs. 8 | pull_request: 9 | 10 | env: 11 | IMAGE_ID: ghcr.io/${{ github.repository_owner }}/appengine-go 12 | LATEST_VERSION: 1.16 13 | 14 | jobs: 15 | test: 16 | runs-on: ubuntu-latest 17 | strategy: 18 | matrix: 19 | version: [1.16, 1.15, 1.14, 1.13, 1.11] 20 | os: [debian, slim, alpine] 21 | steps: 22 | - uses: actions/checkout@v2 23 | 24 | - name: Run test 25 | run: docker build . --file ${{ matrix.version }}/${{ matrix.os }}/Dockerfile --tag $IMAGE_ID:${{ matrix.version }}-${{ matrix.os }} 26 | 27 | push: 28 | needs: test 29 | runs-on: ubuntu-latest 30 | if: github.event_name == 'push' 31 | 32 | strategy: 33 | matrix: 34 | version: [1.16, 1.15, 1.14, 1.13, 1.11] 35 | os: [debian, slim, alpine] 36 | steps: 37 | - uses: actions/checkout@v2 38 | 39 | - name: Build image 40 | run: | 41 | docker build . --file ${{ matrix.version }}/${{ matrix.os }}/Dockerfile --tag $IMAGE_ID:${{ matrix.version }}-${{ matrix.os }} 42 | 43 | - name: Log into GitHub Container Registry 44 | run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin 45 | 46 | - name: Push image to GitHub Container Registry 47 | run: | 48 | echo OS=${{ matrix.os }} 49 | echo Version=${{ matrix.version }} 50 | 51 | 52 | docker push $IMAGE_ID:${{ matrix.version }}-${{ matrix.os }} 53 | 54 | push_os_latest: 55 | needs: test 56 | runs-on: ubuntu-latest 57 | if: github.event_name == 'push' 58 | 59 | strategy: 60 | matrix: 61 | os: [debian, slim, alpine] 62 | steps: 63 | - uses: actions/checkout@v2 64 | 65 | - name: Build image 66 | run: | 67 | docker build . --file $LATEST_VERSION/debian/Dockerfile --tag $IMAGE_ID:${{ matrix.os }} 68 | 69 | - name: Log into GitHub Container Registry 70 | run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin 71 | 72 | - name: Push image to GitHub Container Registry 73 | run: | 74 | docker push $IMAGE_ID:${{ matrix.os }} 75 | 76 | push_version_latest: 77 | needs: test 78 | runs-on: ubuntu-latest 79 | if: github.event_name == 'push' 80 | 81 | strategy: 82 | matrix: 83 | version: [1.16, 1.15, 1.14, 1.13, 1.11] 84 | steps: 85 | - uses: actions/checkout@v2 86 | 87 | - name: Build image 88 | run: | 89 | docker build . --file ${{ matrix.version }}/debian/Dockerfile --tag $IMAGE_ID:${{ matrix.version }} 90 | 91 | - name: Log into GitHub Container Registry 92 | run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin 93 | 94 | - name: Push image to GitHub Container Registry 95 | run: | 96 | echo Version=${{ matrix.version }} 97 | 98 | 99 | docker push $IMAGE_ID:${{ matrix.version }} 100 | 101 | push_latest: 102 | # 最後にpushしたものがpackageのサイトのサンプルになるようなので、最後に実行するようにする 103 | needs: push 104 | runs-on: ubuntu-latest 105 | if: github.event_name == 'push' 106 | 107 | steps: 108 | - uses: actions/checkout@v2 109 | 110 | - name: Build image 111 | run: | 112 | docker build . --file $LATEST_VERSION/debian/Dockerfile --tag $IMAGE_ID:latest 113 | 114 | - name: Log into GitHub Container Registry 115 | run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin 116 | 117 | - name: Push image to GitHub Container Registry 118 | run: | 119 | docker push $IMAGE_ID:latest 120 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Binaries for programs and plugins 2 | *.exe 3 | *.exe~ 4 | *.dll 5 | *.so 6 | *.dylib 7 | 8 | # Test binary, build with `go test -c` 9 | *.test 10 | 11 | # Output of the go coverage tool, specifically when used with LiteIDE 12 | *.out 13 | -------------------------------------------------------------------------------- /1.11/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:alpine 2 | LABEL maintainer "GCPUG " 3 | 4 | ENV GOPATH=/go \ 5 | PATH=/go/bin:/usr/local/go/bin:/google-cloud-sdk/bin:/google-cloud-sdk/platform/google_appengine:$PATH 6 | 7 | ARG GOLANG_VERSION=1.11.13 8 | ARG GOLANG_DOWNLOAD_SHA256=50fe8e13592f8cf22304b9c4adfc11849a2c3d281b1d7e09c924ae24874c6daa 9 | 10 | RUN apk add --no-cache \ 11 | gcc \ 12 | libc-dev \ 13 | make \ 14 | unzip && \ 15 | \ 16 | gcloud components install \ 17 | app-engine-go \ 18 | beta && \ 19 | chmod +x /google-cloud-sdk/platform/google_appengine/*.py && \ 20 | \ 21 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 22 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 23 | tar -C /usr/local -xzf go.tgz && \ 24 | rm go.tgz 25 | 26 | VOLUME ["/root/.config"] 27 | -------------------------------------------------------------------------------- /1.11/debian/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:latest 2 | LABEL maintainer "GCPUG " 3 | 4 | ARG GOPATH=/go 5 | ENV GOPATH=${GOPATH} \ 6 | PATH=/go/bin:/usr/local/go/bin:$PATH 7 | 8 | ARG GOLANG_VERSION=1.11.13 9 | ARG GOLANG_DOWNLOAD_SHA256=50fe8e13592f8cf22304b9c4adfc11849a2c3d281b1d7e09c924ae24874c6daa 10 | 11 | RUN set -eux && \ 12 | apt-get update && \ 13 | apt-get install -yqq --no-install-suggests --no-install-recommends \ 14 | libc6-dev \ 15 | make \ 16 | unzip && \ 17 | rm -rf /var/lib/apt/lists/* && \ 18 | \ 19 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 20 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 21 | tar -C /usr/local -xzf go.tgz && \ 22 | rm go.tgz && \ 23 | mkdir ${GOPATH} 24 | 25 | ENV CLOUDSDK_PYTHON=python2 26 | 27 | VOLUME ["/root/.config"] 28 | -------------------------------------------------------------------------------- /1.11/slim/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:slim 2 | LABEL maintainer "GCPUG " 3 | 4 | ARG GOPATH=/go 5 | ENV GOPATH=${GOPATH} \ 6 | PATH=/go/bin:/usr/local/go/bin:$PATH 7 | 8 | ARG GOLANG_VERSION=1.11.13 9 | ARG GOLANG_DOWNLOAD_SHA256=50fe8e13592f8cf22304b9c4adfc11849a2c3d281b1d7e09c924ae24874c6daa 10 | 11 | RUN set -eux && \ 12 | apt-get update && \ 13 | apt-get install -yqq --no-install-suggests --no-install-recommends \ 14 | google-cloud-sdk-app-engine-go \ 15 | libc6-dev \ 16 | make \ 17 | unzip && \ 18 | rm -rf /var/lib/apt/lists/* && \ 19 | \ 20 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 21 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 22 | tar -C /usr/local -xzf go.tgz && \ 23 | rm go.tgz && \ 24 | mkdir ${GOPATH} 25 | 26 | ENV CLOUDSDK_PYTHON=python2.7 27 | 28 | VOLUME ["/root/.config"] 29 | -------------------------------------------------------------------------------- /1.13/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:alpine 2 | LABEL maintainer "GCPUG " 3 | 4 | ENV GOPATH=/go \ 5 | PATH=/go/bin:/usr/local/go/bin:/google-cloud-sdk/bin:/google-cloud-sdk/platform/google_appengine:$PATH 6 | 7 | ARG GOLANG_VERSION=1.13.11 8 | ARG GOLANG_DOWNLOAD_SHA256=a4d71ca9e02923fa96669a4b5faf78ee8331b18e7209b09dd87fe763b4838ada 9 | 10 | RUN apk add --no-cache \ 11 | gcc \ 12 | libc-dev \ 13 | make \ 14 | unzip && \ 15 | \ 16 | gcloud components install \ 17 | app-engine-go \ 18 | beta && \ 19 | chmod +x /google-cloud-sdk/platform/google_appengine/*.py && \ 20 | \ 21 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 22 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 23 | tar -C /usr/local -xzf go.tgz && \ 24 | rm go.tgz 25 | 26 | VOLUME ["/root/.config"] 27 | -------------------------------------------------------------------------------- /1.13/debian/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:latest 2 | LABEL maintainer "GCPUG " 3 | 4 | ARG GOPATH=/go 5 | ENV GOPATH=${GOPATH} \ 6 | PATH=/go/bin:/usr/local/go/bin:$PATH 7 | 8 | ARG GOLANG_VERSION=1.13.11 9 | ARG GOLANG_DOWNLOAD_SHA256=a4d71ca9e02923fa96669a4b5faf78ee8331b18e7209b09dd87fe763b4838ada 10 | 11 | RUN set -eux && \ 12 | apt-get update && \ 13 | apt-get install -yqq --no-install-suggests --no-install-recommends \ 14 | libc6-dev \ 15 | make \ 16 | unzip && \ 17 | rm -rf /var/lib/apt/lists/* && \ 18 | \ 19 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 20 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 21 | tar -C /usr/local -xzf go.tgz && \ 22 | rm go.tgz && \ 23 | mkdir ${GOPATH} 24 | 25 | VOLUME ["/root/.config"] 26 | -------------------------------------------------------------------------------- /1.13/slim/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:slim 2 | LABEL maintainer "GCPUG " 3 | 4 | ARG GOPATH=/go 5 | ENV GOPATH=${GOPATH} \ 6 | PATH=/go/bin:/usr/local/go/bin:$PATH 7 | 8 | ARG GOLANG_VERSION=1.13.11 9 | ARG GOLANG_DOWNLOAD_SHA256=a4d71ca9e02923fa96669a4b5faf78ee8331b18e7209b09dd87fe763b4838ada 10 | 11 | RUN set -eux && \ 12 | apt-get update && \ 13 | apt-get install -yqq --no-install-suggests --no-install-recommends \ 14 | google-cloud-sdk-app-engine-go \ 15 | libc6-dev \ 16 | make \ 17 | unzip && \ 18 | rm -rf /var/lib/apt/lists/* && \ 19 | \ 20 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 21 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 22 | tar -C /usr/local -xzf go.tgz && \ 23 | rm go.tgz && \ 24 | mkdir ${GOPATH} 25 | 26 | VOLUME ["/root/.config"] 27 | -------------------------------------------------------------------------------- /1.14/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:alpine 2 | LABEL maintainer "GCPUG " 3 | 4 | ENV GOPATH=/go \ 5 | PATH=/go/bin:/usr/local/go/bin:/google-cloud-sdk/bin:/google-cloud-sdk/platform/google_appengine:$PATH 6 | 7 | ARG GOLANG_VERSION=1.14.3 8 | ARG GOLANG_DOWNLOAD_SHA256=1c39eac4ae95781b066c144c58e45d6859652247f7515f0d2cba7be7d57d2226 9 | 10 | RUN apk add --no-cache \ 11 | gcc \ 12 | libc-dev \ 13 | make \ 14 | unzip && \ 15 | \ 16 | gcloud components install \ 17 | app-engine-go \ 18 | beta && \ 19 | chmod +x /google-cloud-sdk/platform/google_appengine/*.py && \ 20 | \ 21 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 22 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 23 | tar -C /usr/local -xzf go.tgz && \ 24 | rm go.tgz 25 | 26 | VOLUME ["/root/.config"] 27 | -------------------------------------------------------------------------------- /1.14/debian/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:latest 2 | LABEL maintainer "GCPUG " 3 | 4 | ARG GOPATH=/go 5 | ENV GOPATH=${GOPATH} \ 6 | PATH=/go/bin:/usr/local/go/bin:$PATH 7 | 8 | ARG GOLANG_VERSION=1.14.3 9 | ARG GOLANG_DOWNLOAD_SHA256=1c39eac4ae95781b066c144c58e45d6859652247f7515f0d2cba7be7d57d2226 10 | 11 | RUN set -eux && \ 12 | apt-get update && \ 13 | apt-get install -yqq --no-install-suggests --no-install-recommends \ 14 | libc6-dev \ 15 | make \ 16 | unzip && \ 17 | rm -rf /var/lib/apt/lists/* && \ 18 | \ 19 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 20 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 21 | tar -C /usr/local -xzf go.tgz && \ 22 | rm go.tgz && \ 23 | mkdir ${GOPATH} 24 | 25 | VOLUME ["/root/.config"] 26 | -------------------------------------------------------------------------------- /1.14/slim/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:slim 2 | LABEL maintainer "GCPUG " 3 | 4 | ARG GOPATH=/go 5 | ENV GOPATH=${GOPATH} \ 6 | PATH=/go/bin:/usr/local/go/bin:$PATH 7 | 8 | ARG GOLANG_VERSION=1.14.3 9 | ARG GOLANG_DOWNLOAD_SHA256=1c39eac4ae95781b066c144c58e45d6859652247f7515f0d2cba7be7d57d2226 10 | 11 | RUN set -eux && \ 12 | apt-get update && \ 13 | apt-get install -yqq --no-install-suggests --no-install-recommends \ 14 | google-cloud-sdk-app-engine-go \ 15 | libc6-dev \ 16 | make \ 17 | unzip && \ 18 | rm -rf /var/lib/apt/lists/* && \ 19 | \ 20 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 21 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 22 | tar -C /usr/local -xzf go.tgz && \ 23 | rm go.tgz && \ 24 | mkdir ${GOPATH} 25 | 26 | VOLUME ["/root/.config"] 27 | -------------------------------------------------------------------------------- /1.15/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:alpine 2 | LABEL maintainer "GCPUG " 3 | 4 | ENV GOPATH=/go \ 5 | PATH=/go/bin:/usr/local/go/bin:/google-cloud-sdk/bin:/google-cloud-sdk/platform/google_appengine:$PATH 6 | 7 | ARG GOLANG_VERSION=1.15.14 8 | ARG GOLANG_DOWNLOAD_SHA256=6f5410c113b803f437d7a1ee6f8f124100e536cc7361920f7e640fedf7add72d 9 | 10 | RUN apk add --no-cache \ 11 | gcc \ 12 | libc-dev \ 13 | make \ 14 | unzip && \ 15 | \ 16 | gcloud components install \ 17 | app-engine-go \ 18 | beta && \ 19 | chmod +x /google-cloud-sdk/platform/google_appengine/*.py && \ 20 | \ 21 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 22 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 23 | tar -C /usr/local -xzf go.tgz && \ 24 | rm go.tgz 25 | 26 | VOLUME ["/root/.config"] 27 | -------------------------------------------------------------------------------- /1.15/debian/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:latest 2 | LABEL maintainer "GCPUG " 3 | 4 | ARG GOPATH=/go 5 | ENV GOPATH=${GOPATH} \ 6 | PATH=/go/bin:/usr/local/go/bin:$PATH 7 | 8 | ARG GOLANG_VERSION=1.15.14 9 | ARG GOLANG_DOWNLOAD_SHA256=6f5410c113b803f437d7a1ee6f8f124100e536cc7361920f7e640fedf7add72d 10 | 11 | RUN set -eux && \ 12 | apt-get update && \ 13 | apt-get install -yqq --no-install-suggests --no-install-recommends \ 14 | libc6-dev \ 15 | make \ 16 | unzip && \ 17 | rm -rf /var/lib/apt/lists/* && \ 18 | \ 19 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 20 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 21 | tar -C /usr/local -xzf go.tgz && \ 22 | rm go.tgz && \ 23 | mkdir ${GOPATH} 24 | 25 | VOLUME ["/root/.config"] 26 | -------------------------------------------------------------------------------- /1.15/slim/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:slim 2 | LABEL maintainer "GCPUG " 3 | 4 | ARG GOPATH=/go 5 | ENV GOPATH=${GOPATH} \ 6 | PATH=/go/bin:/usr/local/go/bin:$PATH 7 | 8 | ARG GOLANG_VERSION=1.15.14 9 | ARG GOLANG_DOWNLOAD_SHA256=6f5410c113b803f437d7a1ee6f8f124100e536cc7361920f7e640fedf7add72d 10 | 11 | RUN set -eux && \ 12 | apt-get update && \ 13 | apt-get install -yqq --no-install-suggests --no-install-recommends \ 14 | google-cloud-sdk-app-engine-go \ 15 | libc6-dev \ 16 | make \ 17 | unzip && \ 18 | rm -rf /var/lib/apt/lists/* && \ 19 | \ 20 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 21 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 22 | tar -C /usr/local -xzf go.tgz && \ 23 | rm go.tgz && \ 24 | mkdir ${GOPATH} 25 | 26 | VOLUME ["/root/.config"] 27 | -------------------------------------------------------------------------------- /1.16/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:alpine 2 | LABEL maintainer "GCPUG " 3 | 4 | ENV GOPATH=/go \ 5 | PATH=/go/bin:/usr/local/go/bin:/google-cloud-sdk/bin:/google-cloud-sdk/platform/google_appengine:$PATH 6 | 7 | ARG GOLANG_VERSION=1.16.7 8 | ARG GOLANG_DOWNLOAD_SHA256=7fe7a73f55ba3e2285da36f8b085e5c0159e9564ef5f63ee0ed6b818ade8ef04 9 | 10 | RUN apk add --no-cache \ 11 | gcc \ 12 | libc-dev \ 13 | make \ 14 | unzip && \ 15 | \ 16 | gcloud components install \ 17 | app-engine-go \ 18 | beta && \ 19 | chmod +x /google-cloud-sdk/platform/google_appengine/*.py && \ 20 | \ 21 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 22 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 23 | tar -C /usr/local -xzf go.tgz && \ 24 | rm go.tgz 25 | 26 | VOLUME ["/root/.config"] 27 | -------------------------------------------------------------------------------- /1.16/debian/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:latest 2 | LABEL maintainer "GCPUG " 3 | 4 | ARG GOPATH=/go 5 | ENV GOPATH=${GOPATH} \ 6 | PATH=/go/bin:/usr/local/go/bin:$PATH 7 | 8 | ARG GOLANG_VERSION=1.16.7 9 | ARG GOLANG_DOWNLOAD_SHA256=7fe7a73f55ba3e2285da36f8b085e5c0159e9564ef5f63ee0ed6b818ade8ef04 10 | 11 | RUN set -eux && \ 12 | apt-get update && \ 13 | apt-get install -yqq --no-install-suggests --no-install-recommends \ 14 | libc6-dev \ 15 | make \ 16 | unzip && \ 17 | rm -rf /var/lib/apt/lists/* && \ 18 | \ 19 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 20 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 21 | tar -C /usr/local -xzf go.tgz && \ 22 | rm go.tgz && \ 23 | mkdir ${GOPATH} 24 | 25 | VOLUME ["/root/.config"] 26 | -------------------------------------------------------------------------------- /1.16/slim/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gcr.io/google.com/cloudsdktool/cloud-sdk:slim 2 | LABEL maintainer "GCPUG " 3 | 4 | ARG GOPATH=/go 5 | ENV GOPATH=${GOPATH} \ 6 | PATH=/go/bin:/usr/local/go/bin:$PATH 7 | 8 | ARG GOLANG_VERSION=1.16.7 9 | ARG GOLANG_DOWNLOAD_SHA256=7fe7a73f55ba3e2285da36f8b085e5c0159e9564ef5f63ee0ed6b818ade8ef04 10 | 11 | RUN set -eux && \ 12 | apt-get update && \ 13 | apt-get install -yqq --no-install-suggests --no-install-recommends \ 14 | google-cloud-sdk-app-engine-go \ 15 | libc6-dev \ 16 | make \ 17 | unzip && \ 18 | rm -rf /var/lib/apt/lists/* && \ 19 | \ 20 | curl -o go.tgz -sSL "https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz" && \ 21 | echo "${GOLANG_DOWNLOAD_SHA256} *go.tgz" | sha256sum -c - && \ 22 | tar -C /usr/local -xzf go.tgz && \ 23 | rm go.tgz && \ 24 | mkdir ${GOPATH} 25 | 26 | VOLUME ["/root/.config"] 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Google Cloud Platform User Group 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # docker-appengine-go 2 | 3 | Docker Image for the [Google App Engine Go environment](https://cloud.google.com/appengine/docs/go/) Go. 4 | 5 | ## Installation 6 | 7 | ```sh 8 | docker pull ghcr.io/gcpug/appengine-go:latest 9 | 10 | # Google Container Registry image is deprecated. Please migrate as soon as possible. 11 | # docker pull gcr.io/gcpug-container/appengine-go 12 | ``` 13 | 14 | ## Tags 15 | 16 | All images installed `go` runtime, `gcloud` SDK and following components with `gcloud` way. 17 | 18 | ## Go 1.16 19 | 20 | - Version: 1.16.7 21 | - Base Image: [google/cloud-sdk](https://hub.docker.com/r/google/cloud-sdk/) 22 | 23 | - [`latest`](1.16/debian/Dockerfile), [`debian`](1.16/debian/Dockerfile), [`1.16`](1.16/debian/Dockerfile), [`1.16-debian`](1.16/debian/Dockerfile) 24 | - Components 25 | - appengine-go 26 | - beta 27 | - cloud-datastore-emulator 28 | - emulator-reverse-proxy 29 | - pubsub-emulator 30 | - [`slim`](1.16/slim/Dockerfile), [`1.16-slim`](1.16/slim/Dockerfile) 31 | - Components 32 | - appengine-go 33 | - beta 34 | - [`alpine`](1.16/alpine/Dockerfile), [`1.16-alpine`](1.16/alpine/Dockerfile) 35 | - Components 36 | - appengine-go 37 | - beta 38 | 39 | ## Go 1.15 40 | 41 | - Version: 1.15.14 42 | - Base Image: [google/cloud-sdk](https://hub.docker.com/r/google/cloud-sdk/) 43 | 44 | - [`1.15`](1.15/debian/Dockerfile), [`1.15-debian`](1.15/debian/Dockerfile) 45 | - Components 46 | - appengine-go 47 | - beta 48 | - cloud-datastore-emulator 49 | - emulator-reverse-proxy 50 | - pubsub-emulator 51 | - [`1.15-slim`](1.15/slim/Dockerfile) 52 | - Components 53 | - appengine-go 54 | - beta 55 | - [`1.15-alpine`](1.15/alpine/Dockerfile) 56 | - Components 57 | - appengine-go 58 | - beta 59 | 60 | ## Go 1.14 61 | 62 | - Version: 1.14.3 63 | - Base Image: [google/cloud-sdk](https://hub.docker.com/r/google/cloud-sdk/) 64 | 65 | - [`1.14`](1.14/debian/Dockerfile), [`1.14-debian`](1.14/debian/Dockerfile) 66 | - Components 67 | - appengine-go 68 | - beta 69 | - cloud-datastore-emulator 70 | - emulator-reverse-proxy 71 | - pubsub-emulator 72 | - [`1.14-slim`](1.14/slim/Dockerfile) 73 | - Components 74 | - appengine-go 75 | - beta 76 | - [`1.14-alpine`](1.14/alpine/Dockerfile) 77 | - Components 78 | - appengine-go 79 | - beta 80 | 81 | ## Go 1.13 82 | 83 | - Version: 1.13.11 84 | - Base Image: [google/cloud-sdk](https://hub.docker.com/r/google/cloud-sdk/) 85 | 86 | - [`1.13`](1.13/debian/Dockerfile), [`1.13-debian`](1.13/debian/Dockerfile) 87 | - Components 88 | - appengine-go 89 | - beta 90 | - cloud-datastore-emulator 91 | - emulator-reverse-proxy 92 | - pubsub-emulator 93 | - [`1.13-slim`](1.13/slim/Dockerfile) 94 | - Components 95 | - appengine-go 96 | - beta 97 | - [`1.13-alpine`](1.13/alpine/Dockerfile) 98 | - Components 99 | - appengine-go 100 | - beta 101 | 102 | ## Go 1.11 103 | 104 | - Version: 1.11.13 105 | - Base Image: [google/cloud-sdk](https://hub.docker.com/r/google/cloud-sdk/) 106 | 107 | - [`1.11`](1.11/debian/Dockerfile), [`1.11-debian`](1.11/debian/Dockerfile) 108 | - Components 109 | - appengine-go 110 | - beta 111 | - cloud-datastore-emulator 112 | - emulator-reverse-proxy 113 | - pubsub-emulator 114 | - [`1.11-slim`](1.11/slim/Dockerfile) 115 | - Components 116 | - appengine-go 117 | - beta 118 | - [`1.11-alpine`](1.11/alpine/Dockerfile) 119 | - Components 120 | - appengine-go 121 | - beta 122 | 123 | ## Usage 124 | 125 | To use this image, pull from [Github Container Registry](https://github.com/orgs/gcpug/packages/container/appengine-go/). See [Installation](#installation) section. 126 | 127 | Verify the `go`, `gcloud` and `dev_appserver.py` commands: 128 | 129 | ```console 130 | $ docker run --rm -it ghcr.io/gcpug/appengine-go:latest gcloud version 131 | Google Cloud SDK 220.0.0 132 | alpha 2018.10.08 133 | app-engine-go 134 | app-engine-java 1.9.66 135 | app-engine-python 1.9.77 136 | app-engine-python-extras 1.9.77 137 | beta 2018.10.08 138 | bigtable 139 | bq 2.0.34 140 | cbt 141 | cloud-datastore-emulator 2.0.2 142 | core 2018.10.08 143 | datalab 20180823 144 | gsutil 4.34 145 | kubectl 2018.10.08 146 | pubsub-emulator 2018.10.08 147 | 148 | $ docker run --rm -it ghcr.io/gcpug/appengine-go:latest go version 149 | go version go1.13.1 linux/amd64 150 | 151 | $ docker run --rm -it ghcr.io/gcpug/appengine-go:latest which dev_appserver.py 152 | /usr/bin/dev_appserver.py 153 | ``` 154 | 155 | ### Use on Github Actions 156 | 157 | Create `.github/workflows/xxx.yml` to your repository. 158 | 159 | ```yaml 160 | jobs: 161 | build: 162 | container: 163 | image: ghcr.io/gcpug/appengine-go 164 | steps: 165 | - name: Checkout repository 166 | uses: actions/checkout@v2 167 | - run: YOUR_TEST_COMMAND 168 | ``` 169 | 170 | ### Use on Circle CI 2.0 171 | 172 | Create `.circleci/config.yml` to your repository. 173 | 174 | ```yaml 175 | version: 2 176 | jobs: 177 | build: 178 | working_directory: /go/src/github.com/YOUR/REPO 179 | docker: 180 | - image: ghcr.io/gcpug/appengine-go 181 | steps: 182 | - checkout 183 | - run: 184 | command: YOUR_TEST_COMMAND 185 | ``` 186 | --------------------------------------------------------------------------------