├── .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 |
--------------------------------------------------------------------------------