|
1 |
| -ARG GOLANG=golang:1.20.10-alpine3.18 |
| 1 | +ARG GOLANG=golang:1.22.6-alpine3.20 |
2 | 2 | FROM ${GOLANG}
|
3 | 3 |
|
4 |
| -ARG http_proxy=$http_proxy |
5 |
| -ARG https_proxy=$https_proxy |
6 |
| -ARG no_proxy=$no_proxy |
7 |
| -ENV http_proxy=$http_proxy |
8 |
| -ENV https_proxy=$https_proxy |
9 |
| -ENV no_proxy=$no_proxy |
10 |
| - |
11 |
| -RUN apk -U --no-cache add bash git gcc musl-dev docker vim less file curl wget ca-certificates jq linux-headers \ |
12 |
| - zlib-dev tar zip squashfs-tools npm coreutils python3 openssl-dev libffi-dev libseccomp libseccomp-dev \ |
13 |
| - libseccomp-static make libuv-static sqlite-dev sqlite-static libselinux libselinux-dev zlib-dev zlib-static \ |
14 |
| - zstd pigz alpine-sdk binutils-gold btrfs-progs-dev btrfs-progs-static gawk yq \ |
15 |
| - && \ |
16 |
| - if [ "$(go env GOARCH)" = "amd64" ]; then \ |
17 |
| - apk -U --no-cache add mingw-w64-gcc; \ |
18 |
| - fi |
| 4 | +# Set proxy environment variables |
| 5 | +ARG http_proxy |
| 6 | +ARG https_proxy |
| 7 | +ARG no_proxy |
| 8 | +ENV http_proxy=${http_proxy} \ |
| 9 | + https_proxy=${https_proxy} \ |
| 10 | + no_proxy=${no_proxy} |
| 11 | + |
| 12 | +# Install necessary packages |
| 13 | +RUN apk -U --no-cache add \ |
| 14 | + bash git gcc musl-dev docker vim less file curl wget ca-certificates jq linux-headers \ |
| 15 | + zlib-dev tar zip squashfs-tools npm coreutils python3 py3-pip openssl-dev libffi-dev libseccomp \ |
| 16 | + libseccomp-dev libseccomp-static make libuv-static sqlite-dev sqlite-static libselinux \ |
| 17 | + libselinux-dev zlib-dev zlib-static zstd pigz alpine-sdk binutils-gold btrfs-progs-dev \ |
| 18 | + btrfs-progs-static gawk yq pipx \ |
| 19 | + && [ "$(go env GOARCH)" = "amd64" ] && apk -U --no-cache add mingw-w64-gcc || true |
19 | 20 |
|
20 |
| -RUN TRIVY_VERSION="0.43.1" && \ |
21 |
| - if [ "$(go env GOARCH)" != "arm" ] && [ "$(go env GOARCH)" != "386" ]; then \ |
22 |
| - if [ "$(go env GOARCH)" = "arm64" ]; then \ |
23 |
| - # Turn arm64 into uppercase ARM64 for Trivy's download |
24 |
| - TRIVY_ARCH=$(go env GOARCH | tr "[:lower:]" "[:upper:]") && \ |
25 |
| - wget --no-verbose "https://github.com/aquasecurity/trivy/releases/download/v${TRIVY_VERSION}/trivy_${TRIVY_VERSION}_Linux-${TRIVY_ARCH}.tar.gz" && \ |
26 |
| - tar -zxvf "trivy_${TRIVY_VERSION}_Linux-${TRIVY_ARCH}.tar.gz" && \ |
27 |
| - mv trivy /usr/local/bin; \ |
28 |
| - elif [ "$(go env GOARCH)" = "amd64" ]; then \ |
29 |
| - wget --no-verbose "https://github.com/aquasecurity/trivy/releases/download/v${TRIVY_VERSION}/trivy_${TRIVY_VERSION}_Linux-64bit.tar.gz" && \ |
30 |
| - tar -zxvf "trivy_${TRIVY_VERSION}_Linux-64bit.tar.gz" && \ |
31 |
| - mv trivy /usr/local/bin; \ |
32 |
| - fi \ |
| 21 | +# Install Trivy |
| 22 | +ENV TRIVY_VERSION="0.56.2" |
| 23 | +RUN case "$(go env GOARCH)" in \ |
| 24 | + arm64) TRIVY_ARCH="ARM64" ;; \ |
| 25 | + amd64) TRIVY_ARCH="64bit" ;; \ |
| 26 | + s390x) TRIVY_ARCH="s390x" ;; \ |
| 27 | + *) TRIVY_ARCH="" ;; \ |
| 28 | + esac |
| 29 | +RUN if [ -n "${TRIVY_ARCH}" ]; then \ |
| 30 | + wget --no-verbose "https://github.com/aquasecurity/trivy/releases/download/v${TRIVY_VERSION}/trivy_${TRIVY_VERSION}_Linux-${TRIVY_ARCH}.tar.gz" \ |
| 31 | + && tar -zxvf "trivy_${TRIVY_VERSION}_Linux-${TRIVY_ARCH}.tar.gz" \ |
| 32 | + && mv trivy /usr/local/bin; \ |
33 | 33 | fi
|
34 | 34 |
|
35 |
| -# this works for both go 1.17 and 1.18 |
36 |
| -RUN GOPROXY=direct go install golang.org/x/tools/cmd/goimports@gopls/v0.8.2 |
| 35 | +# Install goimports |
| 36 | +RUN GOPROXY=direct go install golang.org/x/tools/cmd/goimports@gopls/v0.11.0 |
| 37 | + |
| 38 | +# Cleanup |
37 | 39 | RUN rm -rf /go/src /go/pkg
|
38 | 40 |
|
| 41 | +# Install golangci-lint for amd64 |
39 | 42 | RUN if [ "$(go env GOARCH)" = "amd64" ]; then \
|
40 |
| - curl -sL https://raw.githubusercontent.com/golangci/golangci-lint/v1.45.2/install.sh | sh -s; \ |
| 43 | + curl -sL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.55.2; \ |
41 | 44 | fi
|
42 | 45 |
|
| 46 | +# Set SELINUX environment variable |
43 | 47 | ARG SELINUX=true
|
44 |
| -ENV SELINUX $SELINUX |
| 48 | +ENV SELINUX=${SELINUX} |
45 | 49 |
|
| 50 | +# Set Dapper configuration variables |
46 | 51 | ENV DAPPER_RUN_ARGS --privileged -v k8e-cache:/go/src/github.com/xiaods/k8e/.cache -v trivy-cache:/root/.cache/trivy
|
47 |
| -ENV DAPPER_ENV REPO TAG RELEASE_TAG IMAGE_NAME SKIP_VALIDATE GCLOUD_AUTH GITHUB_TOKEN GOLANG GOOS GOARCH DEBUG |
48 |
| -ENV DAPPER_SOURCE /go/src/github.com/xiaods/k8e/ |
49 |
| -ENV DAPPER_OUTPUT ./bin ./dist ./build/out ./build/static ./pkg/static ./pkg/deploy |
50 |
| - |
51 |
| -ENV DAPPER_DOCKER_SOCKET true |
52 |
| -ENV HOME ${DAPPER_SOURCE} |
53 |
| -ENV CROSS true |
54 |
| -ENV STATIC_BUILD true |
| 52 | + DAPPER_ENV REPO TAG RELEASE_TAG IMAGE_NAME SKIP_VALIDATE GCLOUD_AUTH GITHUB_TOKEN GOLANG GOOS GOARCH DEBUG |
| 53 | + DAPPER_SOURCE="/go/src/github.com/xiaods/k8e/" \ |
| 54 | + DAPPER_OUTPUT ./bin ./dist ./build/out ./build/static ./pkg/static ./pkg/deploy \ |
| 55 | + DAPPER_DOCKER_SOCKET=true \ |
| 56 | + CROSS=true \ |
| 57 | + STATIC_BUILD=true |
| 58 | + |
| 59 | +# Set $HOME separately because it refers to $DAPPER_SOURCE, set above |
| 60 | +ENV HOME=${DAPPER_SOURCE} |
| 61 | + |
55 | 62 | WORKDIR ${DAPPER_SOURCE}
|
56 | 63 |
|
57 | 64 | ENTRYPOINT ["./hack/entry.sh"]
|
|
0 commit comments