Skip to content

Commit

Permalink
Simplify from scratch docker - use built in go CA bundle (#146)
Browse files Browse the repository at this point in the history
Note: the commit steps in the original MR is worth checking

* adding local docker test - before addressing #145

* remove alpine

test/connect will fail with 16:07:44 [E] 1: Error fetching 18.222.136.83: Get "https://debug.fortio.org/build-test": tls: failed to verify certificate: x509: certificate signed by unknown authority

* use fortio/workflows#47 to show failure of image in current state

* don't check goreleaser in go checks

* meant to not add all the files before but... lets fix the linter first

* Making CI fail again until we bump cli package

* pre test the cli release, also add negative test

* get the non pre release

* Move bundle mention to Dockerfile
  • Loading branch information
ldemailly authored Jun 23, 2024
1 parent c3ec3ee commit 1815f10
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 6 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
.DS_Store
coverage.out
.goreleaser.yaml
.golangci.yml
dist/
multicurl
5 changes: 2 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
FROM alpine as certs
RUN apk update && apk add ca-certificates
# We don't need to copy the CA bundle anymore thanks to
# https://github.com/fortio/cli/releases/tag/v1.6.0
FROM scratch
COPY multicurl /usr/bin/multicurl
COPY --from=certs /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
ENTRYPOINT ["/usr/bin/multicurl"]
34 changes: 34 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
all: clean lint check test-local-image

test: test-local-image
go test -race ./...

lint: .golangci.yml
golangci-lint run

check: .goreleaser.yaml
goreleaser check

multicurl: # normal one with the bundle through fortio/cli
CGO_ENABLED=0 GOOS=linux go build -a .

# Will fail because of missing bundle, on purpose, to confirm the negative build tag works.
no-bundle-failing-test: build_no_tls_fallback test-local-image

build_no_tls_fallback:
CGO_ENABLED=0 GOOS=linux go build -a -tags no_tls_fallback .

clean:
rm -f multicurl

test-local-image: multicurl
docker build -t fortio/multicurl:local -f Dockerfile .
docker run --rm fortio/multicurl:local -4 https://debug.fortio.org/build-test

.golangci.yml: Makefile
curl -fsS -o .golangci.yml https://raw.githubusercontent.com/fortio/workflows/main/golangci.yml

.goreleaser.yaml: Makefile
curl -fsS -o .goreleaser.yaml https://raw.githubusercontent.com/fortio/workflows/main/goreleaser.yaml # same use branch for testing instead of main in #38

.PHONY: lint check all local-image test-local-image no-bundle-failing-test build_no_tls_fallback clean
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ module fortio.org/multicurl
go 1.18

require (
fortio.org/cli v1.5.2
fortio.org/cli v1.6.0
fortio.org/log v1.12.2
fortio.org/testscript v0.3.1
fortio.org/version v1.0.4
)

require (
fortio.org/struct2env v0.4.0 // indirect
golang.org/x/crypto/x509roots/fallback v0.0.0-20240604170348-d4e7c9cb6cb8 // indirect
golang.org/x/sys v0.8.0 // indirect
golang.org/x/tools v0.8.0 // indirect
)
6 changes: 4 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
fortio.org/cli v1.5.2 h1:MfEcHAhYyIkwG04/K1YJL946Y8/jyAjmF9WeR5ZG/5E=
fortio.org/cli v1.5.2/go.mod h1:SdQufh5PLd6oX2EtvtzLFw++gw8zVoejD1WlwGXAvYw=
fortio.org/cli v1.6.0 h1:EX9zf+BLzgE+yrq2a3XFZz2F8CK1g9ecJj9ZXVOfoww=
fortio.org/cli v1.6.0/go.mod h1:QSCd+8OD3MrFKo2XwAHVJJu5gz/U0Jg1Vhse/4nHn3I=
fortio.org/log v1.12.2 h1:JwLDFvEUKGfqA09fcf+mOn8kxsvwhjXV92xghxNnnwA=
fortio.org/log v1.12.2/go.mod h1:1tMBG/Elr6YqjmJCWiejJp2FPvXg7/9UAN0Rfpkyt1o=
fortio.org/struct2env v0.4.0 h1:k5alSOTf3YHiB3MuacjDHQ3YhVWvNZ95ZP/a6MqvyLo=
Expand All @@ -8,6 +8,8 @@ fortio.org/testscript v0.3.1 h1:MmRO64AsmzaU1KlYMzAbotJIMKRGxD1XXssJnBRiMGQ=
fortio.org/testscript v0.3.1/go.mod h1:7OJ+U4avooRNqc7p/VHKJadYgj9fA6+N0SbGU8FVWGs=
fortio.org/version v1.0.4 h1:FWUMpJ+hVTNc4RhvvOJzb0xesrlRmG/a+D6bjbQ4+5U=
fortio.org/version v1.0.4/go.mod h1:2JQp9Ax+tm6QKiGuzR5nJY63kFeANcgrZ0osoQFDVm0=
golang.org/x/crypto/x509roots/fallback v0.0.0-20240604170348-d4e7c9cb6cb8 h1:+kWDWI3Eb5cPIOr4cP+R2RLDwK3/dXppL+7XmSOh2LA=
golang.org/x/crypto/x509roots/fallback v0.0.0-20240604170348-d4e7c9cb6cb8/go.mod h1:kNa9WdvYnzFwC79zRpLRMJbdEFlhyM5RPFBBZp/wWH8=
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y=
Expand Down

0 comments on commit 1815f10

Please sign in to comment.