mirror of
https://github.com/yusing/godoxy.git
synced 2026-03-10 08:16:00 +01:00
- Update golang base image in Dockerfiles from 1.26.0 to 1.26.1
- Upgrade go.mod go version to 1.26.1 in all modules
- Update github.com/yusing/godoxy from v0.26.0 to v0.27.2
- Update gin from v1.11.0 to v1.12.0, docker/cli to v29.3.0, gotify to v2.9.1
- Update golang.org/x/{net,oauth2,sync,time,sys} to latest versions
- Update OpenTelemetry packages to v1.42.0/v0.67.0
- Update OpenJDK and other cloud provider SDKs
- Update goutils submodule to latest commit
79 lines
2.0 KiB
Docker
79 lines
2.0 KiB
Docker
# Stage 1: deps
|
|
FROM golang:1.26.1-alpine AS deps
|
|
HEALTHCHECK NONE
|
|
|
|
# package version does not matter
|
|
# libgcc and libstdc++ are needed for bun
|
|
# trunk-ignore(hadolint/DL3018)
|
|
RUN apk add --no-cache tzdata make libcap-setcap libgcc libstdc++
|
|
|
|
ENV GOPATH=/root/go
|
|
ENV GOCACHE=/root/.cache/go-build
|
|
|
|
WORKDIR /src
|
|
|
|
COPY goutils/go.mod goutils/go.sum ./goutils/
|
|
COPY internal/go-oidc/go.mod internal/go-oidc/go.sum ./internal/go-oidc/
|
|
COPY internal/gopsutil/go.mod internal/gopsutil/go.sum ./internal/gopsutil/
|
|
COPY internal/go-proxmox/go.mod internal/go-proxmox/go.sum ./internal/go-proxmox/
|
|
COPY go.mod go.sum ./
|
|
|
|
# for minify-js
|
|
COPY --from=oven/bun:1.3.9-alpine /usr/local/bin/bun /usr/local/bin/bun
|
|
COPY --from=oven/bun:1.3.9-alpine /usr/local/bin/bunx /usr/local/bin/bunx
|
|
|
|
# remove godoxy stuff from go.mod first
|
|
RUN --mount=type=cache,target=/root/.cache/go-build \
|
|
--mount=type=cache,target=/root/go/pkg/mod \
|
|
sed -i '/^module github\.com\/yusing\/godoxy/!{/github\.com\/yusing\/godoxy/d}' go.mod && \
|
|
sed -i '/^module github\.com\/yusing\/goutils/!{/github\.com\/yusing\/goutils/d}' go.mod && \
|
|
go mod download -x
|
|
|
|
# Stage 2: builder
|
|
FROM deps AS builder
|
|
|
|
WORKDIR /src
|
|
|
|
COPY go.mod go.sum ./
|
|
COPY Makefile ./
|
|
COPY cmd ./cmd
|
|
COPY internal ./internal
|
|
COPY pkg ./pkg
|
|
COPY agent ./agent
|
|
COPY socket-proxy ./socket-proxy
|
|
COPY goutils ./goutils
|
|
|
|
ARG VERSION
|
|
ENV VERSION=${VERSION}
|
|
|
|
ARG MAKE_ARGS
|
|
ENV MAKE_ARGS=${MAKE_ARGS}
|
|
|
|
ARG BRANCH
|
|
ENV BRANCH=${BRANCH}
|
|
|
|
RUN --mount=type=cache,target=/root/.cache/go-build \
|
|
--mount=type=cache,target=/root/go/pkg/mod \
|
|
make ${MAKE_ARGS} docker=1 build
|
|
|
|
# Stage 3: Final image
|
|
FROM scratch
|
|
|
|
LABEL maintainer="yusing@6uo.me"
|
|
LABEL proxy.exclude=1
|
|
LABEL proxy.#1.healthcheck.disable=true
|
|
|
|
# copy timezone data
|
|
COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo
|
|
|
|
# copy binary
|
|
COPY --from=builder /app/run /app/run
|
|
|
|
# copy certs
|
|
COPY --from=builder /etc/ssl/certs /etc/ssl/certs
|
|
|
|
ENV DOCKER_HOST=unix:///var/run/docker.sock
|
|
|
|
WORKDIR /app
|
|
|
|
CMD ["/app/run"] |