FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
function-analysis-gate/Dockerfile at main · upbound/function-analysis-gate · GitHub
upbound
/
function-analysis-gate
Public
Notifications
You must be signed in to change notification settings
Fork
0
Star
2
Code
Issues
0
Pull requests
2
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
function-analysis-gate
/
Dockerfile
Copy path
More file actions
More file actions
Latest commit
History
History
History
48 lines (40 loc) · 2.15 KB
Breadcrumbs
function-analysis-gate
/
Dockerfile
Copy path
File metadata and controls
48 lines (40 loc) · 2.15 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#
syntax=docker/dockerfile:1
#
We use the latest Go 1.x version unless asked to use something else.
#
The GitHub Actions CI job sets this argument for a consistent Go version.
ARG
GO_VERSION=1
#
Setup the base environment. The BUILDPLATFORM is set automatically by Docker.
#
The --platform=${BUILDPLATFORM} flag tells Docker to build the function using
#
the OS and architecture of the host running the build, not the OS and
#
architecture that we're building the function for.
FROM
--platform=${BUILDPLATFORM} golang:${GO_VERSION} AS build
WORKDIR
/fn
#
Most functions don't want or need CGo support, so we disable it.
#
If CGo support is needed make sure to also change the base image to one that
#
includes glibc, like 'distroless/base'.
ENV
CGO_ENABLED=0
#
We run go mod download in a separate step so that we can cache its results.
#
This lets us avoid re-downloading modules if we don't need to. The type=target
#
mount tells Docker to mount the current directory read-only in the WORKDIR.
#
The type=cache mount tells Docker to cache the Go modules cache across builds.
RUN
--mount=target=. --mount=type=cache,target=/go/pkg/mod go mod download
#
The TARGETOS and TARGETARCH args are set by docker. We set GOOS and GOARCH to
#
these values to ask Go to compile a binary for these architectures. If
#
TARGETOS and TARGETOS are different from BUILDPLATFORM, Go will cross compile
#
for us (e.g. compile a linux/amd64 binary on a linux/arm64 build machine).
ARG
TARGETOS
ARG
TARGETARCH
#
Build the function binary. The type=target mount tells Docker to mount the
#
current directory read-only in the WORKDIR. The type=cache mount tells Docker
#
to cache the Go modules cache across builds.
RUN
--mount=target=. \
--mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /function .
#
Produce the Function image. We use a very lightweight 'distroless' image that
#
does not include any of the build tools used in previous stages.
FROM
gcr.io/distroless/static-debian12:nonroot AS image
WORKDIR
/
COPY
--from=build /function /function
EXPOSE
9443
USER
nonroot:nonroot
ENTRYPOINT
[
"/function"
]
Back
|
FazBrowse Home
|
New Git URL