diff --git a/docker-compose.yaml b/docker-compose.yaml index 7640f30e..c1dd4d1e 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -19,5 +19,19 @@ services: OPENFLARE_AGENT_TOKEN: "07800f31d3f181e65d18dca1407d821c" LOG_LEVEL: "debug" + extra_hosts: + - "host.docker.internal:host-gateway" + + openflare-relay: + build: + context: . + dockerfile: openflare_relay/Dockerfile + container_name: openflare-relay + network_mode: host + restart: unless-stopped + environment: + OPENFLARE_SERVER_URL: http://host.docker.internal:3000 + OPENFLARE_DISCOVERY_TOKEN: 85464eeb72c49abc430569d6b9c77f78 + LOG_LEVEL: "debug" extra_hosts: - "host.docker.internal:host-gateway" \ No newline at end of file diff --git a/openflare_relay/Dockerfile b/openflare_relay/Dockerfile index 9d230c9c..67b0402b 100644 --- a/openflare_relay/Dockerfile +++ b/openflare_relay/Dockerfile @@ -3,19 +3,30 @@ FROM golang:1.25-alpine AS builder WORKDIR /build COPY openflare_relay/go.mod openflare_relay/go.sum ./ -# Note: In a real monorepo build, openflare and openflare_server need to be available. -# For now, we assume this is built from the root of the project where both are present. COPY openflare_server /openflare_server COPY openflare_relay /openflare_relay WORKDIR /openflare_relay -RUN go build -o openflare-relay ./cmd/relay +RUN CGO_ENABLED=0 GOOS=linux go build -o openflare-relay ./cmd/relay -FROM fatedier/frps:v0.69.0 +# Extract frps binary from official image +FROM fatedier/frps:v0.69.0 AS frps +# Final runtime image +FROM alpine:latest + +RUN apk --no-cache add ca-certificates tzdata + +# Copy openflare-relay binary COPY --from=builder /openflare_relay/openflare-relay /usr/local/bin/openflare-relay +# Copy frps binary from official image +COPY --from=frps /usr/bin/frps /usr/local/bin/frps + VOLUME ["/var/lib/openflare-relay"] -ENTRYPOINT ["/usr/local/bin/openflare-relay", "-config", "/etc/openflare-relay/relay.json"] -CMD [] +ENV OPENFLARE_FRPS_PATH=/usr/local/bin/frps +ENV OPENFLARE_DATA_DIR=/var/lib/openflare-relay + +ENTRYPOINT ["/usr/local/bin/openflare-relay"] +CMD ["-config", "/etc/openflare-relay/relay.json"] diff --git a/openflared/Dockerfile b/openflared/Dockerfile index 6629d0a7..09b36ed0 100644 --- a/openflared/Dockerfile +++ b/openflared/Dockerfile @@ -10,14 +10,24 @@ COPY openflare_server/ ../openflare_server/ COPY openflared/ . RUN CGO_ENABLED=0 GOOS=linux go build -o flared ./cmd/flared -FROM fatedier/frpc:v0.69.0 +# Extract frpc binary from official image +FROM fatedier/frpc:v0.69.0 AS frpc + +# Final runtime image +FROM alpine:latest + +RUN apk --no-cache add ca-certificates tzdata WORKDIR /app +# Copy openflared binary COPY --from=builder /build/flared . +# Copy frpc binary from official image +COPY --from=frpc /usr/bin/frpc /usr/local/bin/frpc + ENV OPENFLARE_DATA_DIR=/app/data -ENV OPENFLARE_FRPC_PATH=/usr/bin/frpc +ENV OPENFLARE_FRPC_PATH=/usr/local/bin/frpc ENTRYPOINT ["/app/flared"] CMD []