# 飞牛 / 通用 Docker：控制面、中继、以及作为 mesh 节点的客户端。
FROM golang:1.22-bookworm AS build
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o /out/controlplane ./cmd/controlplane \
 && CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o /out/relay ./cmd/relay \
 && CGO_ENABLED=0 go build -trimpath -ldflags "-s -w" -o /out/lanmesh ./cmd/lanmesh

FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates wget \
 && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /out/controlplane /out/relay /out/lanmesh /app/
COPY web /app/web
COPY deploy/fnos/entrypoint.sh /entrypoint.sh
RUN chmod 755 /entrypoint.sh
ENV LANMESH_CONTROL_URL=https://mesh.zhaoyoucai.xyz \
    LANMESH_STATE_DIR=/var/lib/lanmesh \
    LANMESH_NAME=飞牛NAS \
    LANMESH_LISTEN=:8080 \
    LANMESH_EMBED_RELAY=true \
    LANMESH_DB_PATH=/var/lib/lanmesh/controlplane.db \
    LANMESH_RADAR_URL=https://www.zhaoyoucai.xyz/radar
VOLUME ["/var/lib/lanmesh"]
ENTRYPOINT ["/entrypoint.sh"]
CMD ["node"]
