27 lines
877 B
Docker
27 lines
877 B
Docker
FROM golang:1.23-alpine AS backend
|
|
WORKDIR /app/backend
|
|
COPY backend/go.mod backend/go.sum ./
|
|
RUN go mod download
|
|
COPY backend/ ./
|
|
RUN go build -o /traefik-gui ./cmd/traefik-gui
|
|
|
|
FROM node:20-alpine AS frontend
|
|
WORKDIR /app/frontend
|
|
COPY frontend/package.json frontend/package-lock.json* ./
|
|
RUN npm ci || npm install
|
|
COPY frontend/ ./
|
|
RUN npm run build
|
|
|
|
FROM alpine:3.19
|
|
RUN apk add --no-cache ca-certificates && \
|
|
addgroup -S traefik-gui && \
|
|
adduser -S -G traefik-gui traefik-gui && \
|
|
mkdir -p /app/frontend/dist /data && \
|
|
chown -R traefik-gui:traefik-gui /app/frontend/dist /data
|
|
COPY --from=backend /traefik-gui /usr/local/bin/traefik-gui
|
|
COPY --from=frontend /app/frontend/dist /app/frontend/dist
|
|
RUN chmod 755 /usr/local/bin/traefik-gui && \
|
|
chown -R traefik-gui:traefik-gui /app/frontend/dist
|
|
EXPOSE 8080
|
|
USER traefik-gui
|
|
ENTRYPOINT ["traefik-gui"]
|