Skip to content

Commit 7c9336d

Browse files
committed
chore: fix docker vulnerabilities
1 parent 55bafd6 commit 7c9336d

5 files changed

Lines changed: 26 additions & 22 deletions

File tree

.claude/settings.local.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@
66
"Bash(go build:*)",
77
"Bash(docker rm:*)",
88
"Bash(docker run:*)",
9-
"WebSearch"
9+
"WebSearch",
10+
"Bash(docker:*)",
11+
"Bash(go version)",
12+
"Bash(go mod:*)",
13+
"Bash(go clean:*)"
1014
]
1115
}
1216
}

Dockerfile

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# syntax=docker/dockerfile:1.4
22
# Use BuildKit for cache mounts (faster CI: DOCKER_BUILDKIT=1)
3-
FROM golang:1.24-alpine3.23 as go-builder
3+
FROM golang:1.25-alpine3.23 AS go-builder
44
WORKDIR /authorizer
55

66
ARG TARGETPLATFORM
@@ -24,14 +24,13 @@ COPY main.go ./
2424
COPY cmd/ ./cmd/
2525
COPY internal/ ./internal/
2626
COPY gqlgen.yml ./
27-
RUN apk add --no-cache build-base
2827
RUN --mount=type=cache,target=/go/pkg/mod \
2928
--mount=type=cache,target=/root/.cache/go-build \
3029
mkdir -p build/${GOOS}/${GOARCH} && \
3130
go build -trimpath -mod=readonly -tags netgo -ldflags "-w -s -X main.VERSION=$VERSION" -o build/${GOOS}/${GOARCH}/authorizer . && \
3231
chmod 755 build/${GOOS}/${GOARCH}/authorizer
3332

34-
FROM alpine:3.23.3 as node-builder
33+
FROM alpine:3.23.3 AS node-builder
3534
WORKDIR /authorizer
3635
COPY web/app/package*.json web/app/
3736
COPY web/dashboard/package*.json web/dashboard/
@@ -45,24 +44,25 @@ COPY web/app web/app
4544
COPY web/dashboard web/dashboard
4645
RUN cd web/app && npm run build && cd ../dashboard && npm run build
4746

48-
FROM alpine:3.23.3
47+
FROM scratch
4948

5049
ARG TARGETARCH=amd64
5150

52-
RUN apk update && apk upgrade --no-cache && \
53-
adduser -D -h /home/authorizer -u 1000 -k /dev/null authorizer && \
54-
mkdir -p web/app web/dashboard
51+
# CA certificates for TLS connections (OAuth, webhooks, etc.)
52+
COPY --from=go-builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
53+
# Timezone data
54+
COPY --from=go-builder /usr/share/zoneinfo /usr/share/zoneinfo
55+
# passwd entry for non-root user
56+
COPY --from=go-builder /etc/passwd /etc/passwd
57+
5558
WORKDIR /authorizer
56-
COPY --from=node-builder --chown=nobody:nobody /authorizer/web/app/build web/app/build
57-
COPY --from=node-builder --chown=nobody:nobody /authorizer/web/app/favicon_io web/app/favicon_io
58-
COPY --from=node-builder --chown=nobody:nobody /authorizer/web/dashboard/build web/dashboard/build
59-
COPY --from=node-builder --chown=nobody:nobody /authorizer/web/dashboard/favicon_io web/dashboard/favicon_io
60-
COPY --from=go-builder --chown=nobody:nobody /authorizer/build/linux/${TARGETARCH}/authorizer ./authorizer
59+
COPY --from=node-builder /authorizer/web/app/build web/app/build
60+
COPY --from=node-builder /authorizer/web/app/favicon_io web/app/favicon_io
61+
COPY --from=node-builder /authorizer/web/dashboard/build web/dashboard/build
62+
COPY --from=node-builder /authorizer/web/dashboard/favicon_io web/dashboard/favicon_io
63+
COPY --from=go-builder /authorizer/build/linux/${TARGETARCH}/authorizer ./authorizer
6164
COPY web/templates web/templates
6265
EXPOSE 8080 8081
63-
USER authorizer
64-
# ENTRYPOINT allows docker run args to be passed to the authorizer binary.
65-
# When extending this image with a shell-form CMD (e.g. to expand env vars for Railway),
66-
# override ENTRYPOINT in your Dockerfile: ENTRYPOINT ["/bin/sh", "-c"] so CMD runs in a shell.
66+
USER 65534
6767
ENTRYPOINT [ "./authorizer" ]
6868
CMD []

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/authorizerdev/authorizer
22

3-
go 1.24.2
3+
go 1.25.5
44

55
require (
66
github.com/99designs/gqlgen v0.17.73
@@ -11,6 +11,7 @@ require (
1111
github.com/ekristen/gorm-libsql v0.0.0-20231101204708-6e113112bcc2
1212
github.com/gin-gonic/gin v1.9.1
1313
github.com/glebarez/sqlite v1.10.0
14+
github.com/go-jose/go-jose/v4 v4.1.3
1415
github.com/gocql/gocql v1.6.0
1516
github.com/golang-jwt/jwt/v4 v4.5.2
1617
github.com/google/uuid v1.6.0
@@ -28,7 +29,6 @@ require (
2829
golang.org/x/oauth2 v0.30.0
2930
golang.org/x/sync v0.19.0
3031
gopkg.in/mail.v2 v2.3.1
31-
gopkg.in/square/go-jose.v2 v2.6.0
3232
gorm.io/driver/mysql v1.5.2
3333
gorm.io/driver/postgres v1.5.4
3434
gorm.io/driver/sqlserver v1.5.2

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ github.com/glebarez/sqlite v1.10.0 h1:u4gt8y7OND/cCei/NMHmfbLxF6xP2wgKcT/BJf2pYk
9898
github.com/glebarez/sqlite v1.10.0/go.mod h1:IJ+lfSOmiekhQsFTJRx/lHtGYmCdtAiTaf5wI9u5uHA=
9999
github.com/go-jose/go-jose/v3 v3.0.4 h1:Wp5HA7bLQcKnf6YYao/4kpRpVMp/yf6+pJKV8WFSaNY=
100100
github.com/go-jose/go-jose/v3 v3.0.4/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ=
101+
github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs=
102+
github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08=
101103
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
102104
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
103105
github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
@@ -444,8 +446,6 @@ gopkg.in/mail.v2 v2.3.1 h1:WYFn/oANrAGP2C0dcV6/pbkPzv8yGzqTjPmTeO7qoXk=
444446
gopkg.in/mail.v2 v2.3.1/go.mod h1:htwXN1Qh09vZJ1NVKxQqHPBaCBbzKhp5GzuJEA4VJWw=
445447
gopkg.in/sourcemap.v1 v1.0.5 h1:inv58fC9f9J3TK2Y2R1NPntXEn3/wjWHkonhIUODNTI=
446448
gopkg.in/sourcemap.v1 v1.0.5/go.mod h1:2RlvNNSMglmRrcvhfuzp4hQHwOtjxlbjX7UPY/GXb78=
447-
gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI=
448-
gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
449449
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
450450
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
451451
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=

internal/crypto/common.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package crypto
33
import (
44
"crypto/x509"
55

6+
"github.com/go-jose/go-jose/v4"
67
"golang.org/x/crypto/bcrypt"
7-
"gopkg.in/square/go-jose.v2"
88
)
99

1010
// GetPubJWK returns JWK for given keys

0 commit comments

Comments
 (0)