FROM golang:1.25

# --- BEGIN AUTO MIRRORS ---
RUN if [ -d /etc/apt ]; then \
      sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null || true; \
      sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null || true; \
      sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null || true; \
      sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null || true; \
      if [ -d /etc/apt/sources.list.d ]; then \
        sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list.d/*.sources 2>/dev/null || true; \
        sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list.d/*.sources 2>/dev/null || true; \
        sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/*.sources 2>/dev/null || true; \
        sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/*.sources 2>/dev/null || true; \
      fi; \
    fi

# --- go mirrors ---

ENV GOPROXY=https://goproxy.cn,direct
RUN apt-get update && apt-get install -y --no-install-recommends git && rm -rf /var/lib/apt/lists/*

# --- BEGIN DOCKER_ENV_FETCH ---
ARG SOURCE_URL
ARG SOURCE_STRIP_COMPONENTS=1
ARG FETCH_SOURCE=true
ARG BUILD_MODE=app
COPY docker-env/common.sh docker-env/fetch_source.sh /docker-env/
RUN chmod +x /docker-env/*.sh && \
    DEST_DIR="/app" STRIP_COMPONENTS="${SOURCE_STRIP_COMPONENTS}" \
    bash /docker-env/fetch_source.sh
# --- END DOCKER_ENV_FETCH ---

# --- END AUTO MIRRORS ---


ENV GOPROXY=https://goproxy.cn,direct \
    CGO_ENABLED=0

WORKDIR /app


RUN go mod download


RUN go build -ldflags="-s -w" -o /app/main ./cmd/caddy
