1
- # syntax=docker/dockerfile:1
2
1
#---------------------------------------------------------------------
3
- # PRE-BUILD STAGE: Build the acr credential helper binary
4
- # This is due to the fact that the acr credential helper is not being actively released
2
+ # STAGE 1: Build credential helpers inside a temporary container
5
3
#---------------------------------------------------------------------
6
- FROM --platform=linux/amd64 golang:1.16 as cred-helpers-build
4
+ FROM --platform=linux/amd64 golang:1.23 as cred-helpers-build
7
5
8
- RUN go install github.com/chrismellard/docker-credential-acr-env@82a0ddb2758901b711d9d1614755b77e401598a1
6
+ RUN go install github.com/awslabs/amazon-ecr-credential-helper/ecr-login/cli/docker-credential-ecr-login@bef5bd9384b752e5c645659165746d5af23a098a
7
+ RUN --mount=type=secret,id=gh_token,required=true \
8
+ git config --global url."https://$(cat /run/secrets/gh_token):x-oauth-basic@github.com/snyk".insteadOf "https://github.com/snyk" && \
9
+ go env -w GOPRIVATE=github.com/snyk && \
10
+ go install github.com/snyk/docker-credential-acr-env@8fa416c5b20b174e9032df1899843b4ebe2adda8 && \
11
+ git config --global --unset url."https://$(cat /run/secrets/gh_token):x-oauth-basic@github.com/snyk".insteadOf
9
12
10
13
#---------------------------------------------------------------------
11
- # STAGE 1 : Build kubernetes-monitor application
14
+ # STAGE 2 : Build kubernetes-monitor application
12
15
#---------------------------------------------------------------------
13
- FROM --platform=linux/amd64 registry.access.redhat.com/ubi9/nodejs-18:1-84 AS build
16
+ FROM --platform=linux/amd64 registry.access.redhat.com/ubi9/nodejs-18:1-123 AS build
14
17
15
18
ENV NODE_ENV production
16
19
@@ -26,14 +29,14 @@ COPY --chown=1001:1001 . ./
26
29
RUN npm run build
27
30
28
31
#---------------------------------------------------------------------
29
- # STAGE 2 : Install containers-common to obtain configuration files
32
+ # STAGE 3 : Install containers-common to obtain configuration files
30
33
#---------------------------------------------------------------------
31
34
FROM --platform=linux/amd64 registry.access.redhat.com/ubi9/ubi:9.4 AS containers-common
32
35
33
36
RUN dnf install -y containers-common
34
37
35
38
#---------------------------------------------------------------------
36
- # STAGE 3 : Build the kubernetes-monitor final image
39
+ # STAGE 4 : Build the kubernetes-monitor final image
37
40
#---------------------------------------------------------------------
38
41
FROM --platform=linux/amd64 registry.access.redhat.com/ubi9/ubi:9.4
39
42
@@ -43,14 +46,8 @@ ARG NODE_18_LATEST_VERSION_TAR_GZ_FILE_SHASUM256
43
46
ARG DUMB_INIT_VERSION=1.2.5
44
47
ARG DUMB_INIT_BINARY_FILE_SHASUM256=e874b55f3279ca41415d290c512a7ba9d08f98041b28ae7c2acb19a545f1c4df
45
48
# https://github.com/lework/skopeo-binary/releases
46
- ARG SKOPEO_VERSION=1.13.2
47
- ARG SKOPEO_BINARY_FILE_SHASUM256=2f00be6ee1c4cbfa7f2452be90a1a2ce88fd92a6d0f6a2e9d901bd2087bd9092
48
- # https://github.com/awslabs/amazon-ecr-credential-helper/releases
49
- # for sha: download SHA256 for the linux-amd64/docker-credential-ecr-login, then `cat docker-credential-ecr-login.sha256`
50
- ARG ECR_CREDENTIAL_HELPER_VERSION=0.9.0
51
- ARG ECR_CREDENTIAL_HELPER_BINARY_FILE_SHASUM256=dd6bd933e439ddb33b9f005ad5575705a243d4e1e3d286b6c82928bcb70e949a
52
- # since this is built from a commit, you will need to build it locally to get the sha
53
- ARG ACR_CREDENTIAL_HELPER_BINARY_SHASUM256=598bbd4ad2741ae2e68ac55e938a4542e71952e418e6278a74baf6213ef8ce76
49
+ ARG SKOPEO_VERSION=1.16.1
50
+ ARG SKOPEO_BINARY_FILE_SHASUM256=8813fb7fcd7a723196ac287683dd929d280f6fe7f0782eace452fe1e3ff2b7eb
54
51
55
52
LABEL name="Snyk Controller" \
56
53
maintainer="support@snyk.io" \
@@ -60,7 +57,7 @@ LABEL name="Snyk Controller" \
60
57
61
58
COPY LICENSE /licenses/LICENSE
62
59
63
- ENV NODE_ENV production
60
+ ENV NODE_ENV= production
64
61
65
62
RUN yum upgrade -y
66
63
@@ -83,17 +80,12 @@ COPY --chown=snyk:snyk --from=containers-common /etc/containers/registries.d/def
83
80
COPY --chown=snyk:snyk --from=containers-common /etc/containers/policy.json /etc/containers/policy.json
84
81
85
82
# Install credential helpers
86
- RUN curl -sSfLo /usr/local/bin/docker-credential-ecr-login "https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/${ECR_CREDENTIAL_HELPER_VERSION}/linux-amd64/docker-credential-ecr-login" && \
87
- chmod 755 /usr/local/bin/docker-credential-ecr-login && \
88
- echo "${ECR_CREDENTIAL_HELPER_BINARY_FILE_SHASUM256} /usr/local/bin/docker-credential-ecr-login" | sha256sum --check --status
83
+ COPY --chown=snyk:snyk --from=cred-helpers-build /go/bin/docker-credential-ecr-login /usr/bin/docker-credential-ecr-login
89
84
COPY --chown=snyk:snyk --from=cred-helpers-build /go/bin/docker-credential-acr-env /usr/local/bin/docker-credential-acr-env
90
- RUN echo "${ACR_CREDENTIAL_HELPER_BINARY_SHASUM256} /usr/local/bin/docker-credential-acr-env" | sha256sum --check --status
91
-
92
85
93
86
# Install gcloud
94
87
RUN curl -sSfL https://sdk.cloud.google.com | bash -s -- --disable-prompts --install-dir=/ && \
95
- rm -f /google-cloud-sdk/bin/anthoscli && \
96
- rm -rf /google-cloud-sdk/platform
88
+ rm -rf /google-cloud-sdk/platform /google-cloud-sdk/bin/anthoscli /google-cloud-sdk/bin/gcloud-crc32c
97
89
ENV PATH=/google-cloud-sdk/bin:$PATH
98
90
99
91
# Install node
0 commit comments