Ctrl K
ComunidadGuías…

docker/Dockerfile.gateway

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# syntax=docker/dockerfile:1.7-labs

FROM golang:1.25-bookworm AS base

RUN apt-get update && \
    apt-get install -y --no-install-recommends fuse3

RUN curl -fsSL https://tailscale.com/install.sh | sh

RUN apt-get install -y libfuse2 libfuse-dev bash-completion && \
    export ARCH="$(dpkg --print-architecture)" && \
    if [ "$ARCH" = "amd64" ]; then \
        ARCH="x86_64"; \
    fi && \
    curl -sSf -o mountpoint.deb https://s3.amazonaws.com/mountpoint-s3-release/1.5.0/${ARCH}/mount-s3-1.5.0-${ARCH}.deb && \
    dpkg -i mountpoint.deb && \
    rm -vf mountpoint.deb

# skopeo
# ========================
FROM golang AS skopeo

WORKDIR /workspace

ENV CGO_ENABLED="0"  \
    DISABLE_DOCS="1" \
    GO_DYN_FLAGS=""  \
    BUILDTAGS="containers_image_openpgp"

RUN <<EOT
set -eux
git clone https://github.com/containers/skopeo.git .
make
make install
/usr/local/bin/skopeo --version
EOT

# Target used in development environments
FROM base AS build

WORKDIR /workspace
ENV GONOSUMDB="github.com/beam-cloud/*"

RUN apt-get install -y libfuse3-dev libbtrfs-dev libgpgme-dev && \
    go install github.com/cosmtrek/air@v1.49.0

COPY go.mod go.sum ./
RUN go mod download && go mod verify

COPY --from=skopeo /usr/local/bin/skopeo /usr/local/bin/skopeo
COPY --from=skopeo /workspace/default-policy.json /etc/containers/policy.json
COPY . .

RUN go build -o /usr/local/bin/gateway /workspace/cmd/gateway/main.go
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /usr/local/bin/beam-agent-linux-amd64 /workspace/cmd/agent
RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o /usr/local/bin/beam-agent-linux-arm64 /workspace/cmd/agent
RUN cp "/usr/local/bin/beam-agent-linux-$(go env GOARCH)" /usr/local/bin/beam-agent


# Target used in production-like environments
FROM base AS release

WORKDIR /workspace

RUN apt-get autoclean

COPY --from=build /usr/local/bin/gateway /usr/local/bin/
COPY --from=build /usr/local/bin/beam-agent /usr/local/bin/
COPY --from=build /usr/local/bin/beam-agent-linux-amd64 /usr/local/bin/
COPY --from=build /usr/local/bin/beam-agent-linux-arm64 /usr/local/bin/
COPY --from=skopeo /usr/local/bin/skopeo /usr/local/bin/skopeo
COPY --from=skopeo /workspace/default-policy.json /etc/containers/policy.json
RUN /usr/local/bin/skopeo --version


CMD ["tail", "-f", "/dev/null"]