Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(flagd-proxy): update build.Dockerfile with buildkit caching (#…
…725) <!-- Please use this template for your pull request. --> <!-- Please use the sections that you need and delete other sections --> ## This PR <!-- add the description of the PR here --> updates `flagd-proxy/build.Dockerfile` with changes: - use less layers (from 7 to 2) - leverage buildkit features: cache (go mod, go build) and bind ### Related Issues <!-- add here the GitHub issue that this PR resolves if applicable --> ### Notes <!-- any additional notes for this PR --> - This change is motivated from the new command of docker: `docker init` (reference: https://docs.docker.com/engine/reference/commandline/init/#example-of-selecting-go) ### Follow-up Tasks <!-- anything that is related to this PR but not done here should be noted under this section --> <!-- if there is a need for a new issue, please link it here --> ### How to test <!-- if applicable, add testing instructions under this section --> ``` $ docker build . -f ./flagd-proxy/build.Dockerfile -t flagd-proxy [+] Building 19.3s (13/13) FINISHED docker:orbstack => [internal] load build definition from build.Dockerfile 0.0s => => transferring dockerfile: 1.99kB 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for gcr.io/distroless/static:nonroot 0.7s => [internal] load metadata for docker.io/library/golang:1.20-alpine 2.1s => [auth] library/golang:pull token for registry-1.docker.io 0.0s => [builder 1/4] FROM docker.io/library/golang:1.20-alpine@sha256:fd9d9d7194ec40a9a6ae89fcaef3e47c47de7746dd5848ab5343695dbbd09f8c 0.0s => CACHED [stage-1 1/3] FROM gcr.io/distroless/static:nonroot@sha256:9ecc53c269509f63c69a266168e4a687c7eb8c0cfd753bd8bfcaa4f58a90876f 0.0s => [internal] load build context 0.0s => => transferring context: 298.78kB 0.0s => CACHED [builder 2/4] WORKDIR /src 0.0s => [builder 3/4] RUN --mount=type=cache,target=/go/pkg/mod/ --mount=type=bind,source=./core/go.mod,target=./core/go.mod --mount=type=bind,source=. 0.7s => [builder 4/4] RUN --mount=type=cache,target=/go/pkg/mod/ --mount=type=cache,target=/root/.cache/go-build --mount=type=bind,source=./core,targe 16.2s => [stage-1 2/3] COPY --from=builder /bin/flagd-build . 0.0s => exporting to image 0.1s => => exporting layers 0.1s => => writing image sha256:671b02ae96c27e2a1c3dc336c2a25fd2b1897d7737cb805cb5e0d72c562965b5 0.0s => => naming to docker.io/library/flagd-proxy 0.0s $ docker run flagd-proxy ______ __ ________ _______ ______ /_____/\ /_/\ /_______/\ /______/\ /_____/\ \::::_\/_\:\ \ \::: _ \ \\::::__\/__\:::_ \ \ \:\/___/\\:\ \ \::(_) \ \\:\ /____/\\:\ \ \ \ \:::._\/ \:\ \____\:: __ \ \\:\\_ _\/ \:\ \ \ \ \:\ \ \:\/___/\\:.\ \ \ \\:\_\ \ \ \:\/.:| | \_\/ \_____\/ \__\/\__\/ \_____\/ \____/_/ Kubernetes Proxy flagd-proxy allows flagd to subscribe to CRD changes without the required permissions. Usage: flagd [command] Available Commands: completion Generate the autocompletion script for the specified shell help Help about any command start Start flagd-proxy Flags: --config string config file (default is $HOME/.agent.yaml) -x, --debug verbose logging -h, --help help for flagd Use "flagd [command] --help" for more information about a command. ``` Signed-off-by: Lam Tran <lam.tran@spenmo.com> Co-authored-by: Lam Tran <lam.tran@spenmo.com> Co-authored-by: Todd Baert <toddbaert@gmail.com>
- Loading branch information
06f3d2e
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Possible performance regression was detected for benchmark 'Go Benchmark'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold
1.30
.BenchmarkResolveBooleanValue/test_staticBoolFlag
2624
ns/op 304 B/op 7 allocs/op1916
ns/op 304 B/op 7 allocs/op1.37
This comment was automatically generated by workflow using github-action-benchmark.