Files
oc-discovery/Dockerfile

62 lines
1.3 KiB
Docker
Raw Permalink Normal View History

2026-02-04 11:35:19 +01:00
# ========================
# Global build arguments
# ========================
ARG CONF_NUM
# ========================
# Dependencies stage
# ========================
2025-01-15 16:32:12 +01:00
FROM golang:alpine AS deps
2026-02-04 11:35:19 +01:00
ARG CONF_NUM
2023-03-09 11:45:29 +01:00
2025-01-15 16:32:12 +01:00
WORKDIR /app
2026-02-04 11:35:19 +01:00
2025-01-15 16:32:12 +01:00
COPY go.mod go.sum ./
2026-02-03 15:31:06 +01:00
RUN sed -i '/replace/d' go.mod
RUN go mod download
2023-03-09 11:45:29 +01:00
2026-02-04 11:35:19 +01:00
# ========================
# Builder stage
# ========================
2026-02-03 15:31:06 +01:00
FROM golang:alpine AS builder
2026-02-04 11:35:19 +01:00
ARG CONF_NUM
2025-01-15 16:32:12 +01:00
WORKDIR /oc-discovery
2023-10-18 15:24:57 +02:00
2026-02-04 11:35:19 +01:00
# Reuse Go cache
2025-01-15 16:32:12 +01:00
COPY --from=deps /go/pkg /go/pkg
COPY --from=deps /app/go.mod /app/go.sum ./
2023-10-18 15:24:57 +02:00
2026-02-04 11:35:19 +01:00
# App sources
2025-01-15 16:32:12 +01:00
COPY . .
2026-02-04 11:35:19 +01:00
# Clean replace directives again (safety)
2025-01-15 16:32:12 +01:00
RUN sed -i '/replace/d' go.mod
2026-02-04 11:35:19 +01:00
# Build package
RUN go install github.com/beego/bee/v2@latest
2026-02-03 15:31:06 +01:00
RUN bee pack
2023-03-09 11:45:29 +01:00
2026-02-04 11:35:19 +01:00
# Extract bundle
RUN mkdir -p /app/extracted \
&& tar -zxvf oc-discovery.tar.gz -C /app/extracted
2025-11-12 09:14:13 +01:00
2026-02-04 11:35:19 +01:00
# ========================
# Runtime stage
# ========================
2026-02-03 15:31:06 +01:00
FROM golang:alpine
2026-02-04 11:35:19 +01:00
ARG CONF_NUM
2025-01-15 16:32:12 +01:00
WORKDIR /app
2023-03-09 11:45:29 +01:00
2026-02-04 11:35:19 +01:00
RUN mkdir ./pem
2026-02-05 09:31:51 +01:00
COPY --from=builder /app/extracted/pem/private${CONF_NUM:-1}.pem ./pem/private.pem
2026-02-04 11:35:19 +01:00
COPY --from=builder /app/extracted/psk ./psk
2026-02-05 09:31:51 +01:00
COPY --from=builder /app/extracted/pem/public${CONF_NUM:-1}.pem ./pem/public.pem
2026-02-04 11:35:19 +01:00
COPY --from=builder /app/extracted/oc-discovery /usr/bin/oc-discovery
2026-02-05 09:31:51 +01:00
COPY --from=builder /app/extracted/docker_discovery${CONF_NUM:-1}.json /etc/oc/discovery.json
2026-02-04 11:35:19 +01:00
2026-02-05 09:31:51 +01:00
EXPOSE 400${CONF_NUM:-1}
2023-03-09 11:45:29 +01:00
2026-02-04 11:35:19 +01:00
ENTRYPOINT ["oc-discovery"]