mirror of
https://github.com/block/buzz.git
synced 2026-10-27 04:30:52 +00:00
Relay mesh: cross-pod tunnel + huddle transport (buzz-relay-mesh) (#1670)
Signed-off-by: Tyler Longwell <tlongwell@block.xyz> Signed-off-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co> Signed-off-by: npub17jjz49l9jjmhhk7cac63j8yt9z555n9cw8vk7v5jz4vzw4ppld5qgj57cc <f4a42a97e594b77bdbd8ee35191c8b28a94a4cb871d96f32921558275421fb68@sprout-oss.stage.blox.sqprod.co> Signed-off-by: Tyler Longwell <tlongwell@squareup.com> Signed-off-by: tlongwell-block <109685178+tlongwell-block@users.noreply.github.com> Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co> Co-authored-by: Tyler Longwell <tlongwell@block.xyz> Co-authored-by: npub1mprnacetjua2xx3p5eddmhxyk6wv929ymm5py8kd2xfxurxahspqqlgyta <d8473ee32b973aa31a21a65adddcc4b69cc2a8a4dee8121ecd51926e0cddbc02@sprout-oss.stage.blox.sqprod.co> Co-authored-by: npub1cc3ha7z055mu0rwwu7806t2wt8mj3pvu0uv5mfp2c50dahaqhczshdalg6 <c6237ef84fa537c78dcee78efd2d4e59f728859c7f194da42ac51ededfa0be05@sprout-oss.stage.blox.sqprod.co> Co-authored-by: npub17jjz49l9jjmhhk7cac63j8yt9z555n9cw8vk7v5jz4vzw4ppld5qgj57cc <f4a42a97e594b77bdbd8ee35191c8b28a94a4cb871d96f32921558275421fb68@sprout-oss.stage.blox.sqprod.co> Co-authored-by: npub1jh9wn95s0472h86ahapupaf7m6kx4v9sx2n0atj2hltcfer8k06s5n3pyf <95cae996907d7cab9f5dbf43c0f53edeac6ab0b032a6feae4abfd784e467b3f5@sprout-oss.stage.blox.sqprod.co> Co-authored-by: npub1t2tgm7d8f995uqvmnm8h88sg3wnpp9a5xysjf6dg3tjmgt3ltulqdp8ehr <5a968df9a7494b4e019b9ecf739e088ba61097b4312124e9a88ae5b42e3f5f3e@sprout-oss.stage.blox.sqprod.co> Co-authored-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co>
This commit is contained in:
46
Dockerfile
46
Dockerfile
@@ -15,8 +15,29 @@ ARG RUST_VERSION=1.95
|
||||
ARG NODE_VERSION=24
|
||||
ARG DEBIAN_VERSION=bookworm
|
||||
|
||||
# Optional extra CA bundle for builds behind a TLS-intercepting corporate proxy
|
||||
# (e.g. a Cloudflare/Zscaler gateway that re-signs TLS). Empty by default, so
|
||||
# public CI builds are unaffected. Point it at a PEM file in the build context:
|
||||
# docker build --build-arg EXTRA_CA_CERTS=path/to/proxy-ca.pem ...
|
||||
# Consumed by the network-touching stages below (cargo + pnpm).
|
||||
ARG EXTRA_CA_CERTS=
|
||||
|
||||
# Optional npm registry for builds where the public registry is unreachable or
|
||||
# policy-blocked (e.g. a corporate mirror / Artifactory). Empty default = public
|
||||
# npmjs, so public CI builds are unaffected. Consumed by the web-builder stage.
|
||||
ARG NPM_REGISTRY=
|
||||
|
||||
# ─── Stage 1: cargo-chef base ───────────────────────────────────────────────
|
||||
FROM rust:${RUST_VERSION}-${DEBIAN_VERSION} AS chef
|
||||
# Trust an optional corporate-proxy CA before any network fetch (no-op if unset).
|
||||
ARG EXTRA_CA_CERTS
|
||||
COPY --chmod=0644 ${EXTRA_CA_CERTS:-Dockerfile} /tmp/extra-ca/src
|
||||
RUN if [ -n "${EXTRA_CA_CERTS}" ]; then \
|
||||
cp /tmp/extra-ca/src /usr/local/share/ca-certificates/extra-proxy-ca.crt \
|
||||
&& update-ca-certificates \
|
||||
&& echo "CARGO_HTTP_CAINFO=/etc/ssl/certs/ca-certificates.crt" >> /etc/environment; \
|
||||
fi
|
||||
ENV CARGO_HTTP_CAINFO=/etc/ssl/certs/ca-certificates.crt
|
||||
RUN cargo install cargo-chef --locked --version 0.1.71
|
||||
WORKDIR /build
|
||||
|
||||
@@ -55,6 +76,31 @@ RUN cargo build --release --locked -p buzz-relay --bin buzz-relay \
|
||||
# vice versa.
|
||||
FROM node:${NODE_VERSION}-${DEBIAN_VERSION}-slim AS web-builder
|
||||
WORKDIR /build
|
||||
# Trust an optional corporate-proxy CA so corepack + pnpm can fetch over an
|
||||
# intercepting TLS gateway (no-op if EXTRA_CA_CERTS is unset).
|
||||
ARG EXTRA_CA_CERTS
|
||||
COPY --chmod=0644 ${EXTRA_CA_CERTS:-Dockerfile} /tmp/extra-ca/src
|
||||
RUN if [ -n "${EXTRA_CA_CERTS}" ]; then \
|
||||
apt-get update && apt-get install -y --no-install-recommends ca-certificates \
|
||||
&& cp /tmp/extra-ca/src /usr/local/share/ca-certificates/extra-proxy-ca.crt \
|
||||
&& update-ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/*; \
|
||||
fi
|
||||
ENV NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca-certificates.crt
|
||||
# Point npm + corepack at an optional mirror (no-op when NPM_REGISTRY is unset).
|
||||
# corepack reads COREPACK_NPM_REGISTRY to fetch the pinned pnpm; pnpm/npm read
|
||||
# the .npmrc registry for dependency installs.
|
||||
ARG NPM_REGISTRY
|
||||
ENV COREPACK_NPM_REGISTRY=${NPM_REGISTRY}
|
||||
# When using a mirror, disable corepack's npmjs signature check: the mirror
|
||||
# republishes tarballs without the public registry's provenance signatures, so
|
||||
# strict verification fails ("No compatible signature found"). Only relaxed on
|
||||
# the mirror path — public builds (NPM_REGISTRY unset) keep strict verification.
|
||||
RUN if [ -n "${NPM_REGISTRY}" ]; then \
|
||||
echo "registry=${NPM_REGISTRY}" > /build/.npmrc \
|
||||
&& echo "COREPACK_INTEGRITY_KEYS=0" >> /etc/environment; \
|
||||
fi
|
||||
ENV COREPACK_INTEGRITY_KEYS=${NPM_REGISTRY:+0}
|
||||
RUN corepack enable
|
||||
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
||||
COPY patches/ patches/
|
||||
|
||||
Reference in New Issue
Block a user