File size: 1,953 Bytes
5ec2e9b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | FROM golang:bookworm as builder
WORKDIR /go/src
EXPOSE 8080
# Install git first as it is required for go mod tidy
RUN apt-get update && apt-get install -y git build-essential
# Copy everything first
COPY go.mod go.sum ./
COPY warp.go server.go ./
# Resolution ambiguity fix: Explicitly fetch the main module and tidy
RUN go mod download && go mod tidy
# Build binaries
RUN CGO_ENABLED=0 GOOS=linux \
go build -a -installsuffix cgo -ldflags '-s' -o warp warp.go && \
go build -a -installsuffix cgo -ldflags '-s' -o server server.go
FROM ubuntu:22.04
# Copy binaries
COPY --from=builder /go/src/warp /usr/local/bin/
COPY --from=builder /go/src/server /usr/local/bin/
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY entrypoint.sh /usr/local/bin/
# Install dependencies and Deno
RUN apt-get update && apt-get install -y --no-install-recommends \
bash \
curl \
ca-certificates \
unzip \
ffmpeg \
&& rm -rf /var/lib/apt/lists/* \
&& curl -fsSL https://deno.land/x/install/install.sh | sh \
&& mv /root/.deno/bin/deno /usr/local/bin/deno \
&& chmod +x /usr/local/bin/entrypoint.sh
# Copy Deno App
WORKDIR /app
COPY deno.json deno.lock compile.env grafana_dashboard.json ./
COPY config ./config
COPY src ./src
ENV DAEMON_MODE false
ENV PROXY_UP ""
ENV PROXY_PORT "8080"
ENV PROXY_USER ""
ENV PROXY_PASS ""
ENV WIREGUARD_UP ""
ENV WIREGUARD_CONFIG ""
ENV WIREGUARD_INTERFACE_PRIVATE_KEY ""
ENV WIREGUARD_INTERFACE_DNS "1.1.1.1"
ENV WIREGUARD_INTERFACE_ADDRESS ""
ENV WIREGUARD_PEER_PUBLIC_KEY ""
ENV WIREGUARD_PEER_ALLOWED_IPS "0.0.0.0/0"
ENV WIREGUARD_PEER_ENDPOINT ""
ENTRYPOINT [ "entrypoint.sh" ]
|