27 lines
958 B
Text
27 lines
958 B
Text
|
|
FROM rust:1.94-bookworm AS builder
|
||
|
|
|
||
|
|
ARG TAILSCALE_RS_REPO=https://github.com/tailscale/tailscale-rs.git
|
||
|
|
ARG TAILSCALE_RS_REF=main
|
||
|
|
|
||
|
|
WORKDIR /app
|
||
|
|
RUN git clone --depth 1 --branch "$TAILSCALE_RS_REF" "$TAILSCALE_RS_REPO" .
|
||
|
|
|
||
|
|
# Re-export ts_control's insecure-keyfetch feature through the tailscale
|
||
|
|
# crate so the axum example can fetch the headscale control key over
|
||
|
|
# plain HTTP. The integration harness serves the control plane without
|
||
|
|
# TLS, and upstream only allows plain-HTTP key fetches when this Cargo
|
||
|
|
# feature is compiled in.
|
||
|
|
RUN sed -i '/^axum = \["dep:axum"\]/a insecure-keyfetch = ["ts_control/insecure-keyfetch"]' Cargo.toml
|
||
|
|
|
||
|
|
RUN cargo build --release --features axum,insecure-keyfetch --example axum
|
||
|
|
|
||
|
|
FROM debian:bookworm-slim
|
||
|
|
|
||
|
|
RUN apt-get update && \
|
||
|
|
apt-get install -y --no-install-recommends \
|
||
|
|
ca-certificates \
|
||
|
|
iproute2 \
|
||
|
|
&& rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
COPY --from=builder /app/target/release/examples/axum /usr/local/bin/axum
|