1- FROM ubuntu:20.04
1+ FROM golang:1.15
22
33LABEL name="drycc-go-dev"
44
5- ENV AZCLI_VERSION=2.9.1 \
6- DOCKER_VERSION=19.03.9 \
7- GO_VERSION=1.14.6 \
8- KUBECTL_VERSION=v1.18.6 \
9- SHELLCHECK_VERSION=v0.7.1 \
10- ETCDCTL_VERSION=v3.4.10 \
11- GOLANGCI_LINT_VERSION=v1.29.0 \
12- PATH=$PATH:/usr/local/go/bin:/go/bin:/usr/local/bin/docker \
13- GOPATH=/go
5+ ENV GOLANGCI_LINT_VERSION=v1.29.0
146
157# This is a huge one-liner to optimize the Docker image layer.
168# We disable source repos to speed up apt-get update.
17- RUN export DEBIAN_FRONTEND=noninteractive && \
18- apt-get update && \
19- apt-get upgrade -y --no-install-recommends && \
20- apt-get install -y --no-install-recommends \
9+ RUN export DEBIAN_FRONTEND=noninteractive \
10+ && apt-get update \
11+ && apt-get install -y lsb-release \
12+ && curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - \
13+ && curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \
14+ && echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list \
15+ && echo "deb https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee -a /etc/apt/sources.list.d/docker.list \
16+ && apt-get update \
17+ && apt-get upgrade -y --no-install-recommends \
18+ && apt-get install -y --no-install-recommends \
2119 bash \
2220 build-essential \
2321 ca-certificates \
@@ -32,9 +30,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
3230 netcat \
3331 openssh-client \
3432 procps \
35- python3 \
36- python3-dev \
37- python3-pip \
3833 rsync \
3934 ruby \
4035 unzip \
@@ -43,36 +38,17 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
4338 vim \
4439 wget \
4540 zip \
46- && wget https://github.com/koalaman/shellcheck/releases/download/$SHELLCHECK_VERSION/shellcheck-$SHELLCHECK_VERSION.linux.x86_64.tar.xz \
47- && xz -d shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz \
48- && tar -xvf shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar \
49- && cp shellcheck-${SHELLCHECK_VERSION}/shellcheck /usr/local/bin/ \
50- && chmod +x /usr/local/bin/shellcheck \
51- && rm -rf shellcheck-${SHELLCHECK_VERSION} shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar \
52- && curl -L https://storage.googleapis.com/golang/go$GO_VERSION.linux-amd64.tar.gz | tar -C /usr/local -xz \
53- && curl -sSL https://storage.googleapis.com/kubernetes-release/release/$KUBECTL_VERSION/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl \
54- && chmod +x /usr/local/bin/kubectl \
55- && mkdir -p /go/bin \
56- && apt-get update && apt-get -f -y install \
57- && curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-$DOCKER_VERSION.tgz \
58- && tar xzvf docker-$DOCKER_VERSION.tgz -C /usr/local/bin \
59- && chmod +x -R /usr/local/bin/docker \
60- && rm docker-$DOCKER_VERSION.tgz \
61- && curl -L https://github.com/coreos/etcd/releases/download/$ETCDCTL_VERSION/etcd-$ETCDCTL_VERSION-linux-amd64.tar.gz -o /tmp/etcd-$ETCDCTL_VERSION.tar.gz \
62- && tar -C /tmp -xvzf /tmp/etcd-$ETCDCTL_VERSION.tar.gz --strip-components=1 etcd-$ETCDCTL_VERSION-linux-amd64/etcdctl \
63- && mv /tmp/etcdctl /usr/local/bin/etcdctl \
64- && rm /tmp/etcd-$ETCDCTL_VERSION.tar.gz \
41+ shellcheck \
42+ etcd \
43+ kubectl \
44+ docker-ce-cli \
6545 && go env -w GO111MODULE=on \
66- && go env -w GOPROXY=https://goproxy.cn,direct \
6746 && go get -u -v \
6847 github.com/AlekSi/gocov-xml \
6948 github.com/axw/gocov/gocov \
7049 github.com/mitchellh/gox \
7150 golang.org/x/lint \
7251 && curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $GOPATH/bin $GOLANGCI_LINT_VERSION \
73- && pip3 install --disable-pip-version-check --no-cache-dir \
74- azure-cli==${AZCLI_VERSION} shyaml \
75- && apt-get purge --auto-remove -y libffi-dev python3-dev python3-pip \
7652 && apt-get autoremove -y \
7753 && apt-get clean -y \
7854 && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/man /usr/share/doc
0 commit comments