Ctrl K
ComunidadGuías…

Dockerfile

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

Archivo original ↗Preguntar a KiBot
FROM --platform=$BUILDPLATFORM node:24.21.0-trixie-slim@sha256:173f125896c3b47ddf056734c7ea789d04595a6a08769a8f78e0df642781fb66 AS node

FROM --platform=$BUILDPLATFORM golang:1.27.2-trixie@sha256:47667934874913a449b96faa7ef4777fa285d9ec29126ee80ed61c45b7cccf0e AS base_builder
WORKDIR /monetr
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      # renovate: datasource=deb depName=build-essential versioning=deb
      build-essential=12.12 \
      # renovate: datasource=deb depName=ca-certificates versioning=deb
      ca-certificates=20250419 \
      # renovate: datasource=deb depName=cmake versioning=deb
      cmake=3.31.6-2 \
      # gcc-x86-64-linux-gnu \ # Add these back to support arm64 hosts compiling amd64
      # libc6-dev-amd64-cross \
      # renovate: datasource=deb depName=gcc-aarch64-linux-gnu versioning=deb
      gcc-aarch64-linux-gnu=4:14.2.0-1 \
      # renovate: datasource=deb depName=libc6-dev-arm64-cross versioning=deb
      libc6-dev-arm64-cross=2.41-11cross1 \
      # renovate: datasource=deb depName=git versioning=deb
      git=1:2.47.3-0+deb13u1 \
      # Node links against libatomic on arm64.
      # renovate: datasource=deb depName=libatomic1 versioning=deb
      libatomic1=14.2.0-19 \
      # renovate: datasource=deb depName=wget versioning=deb
      wget=1.25.0-2 && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Node comes out of the official image rather than apt so that we can pin an
# exact version, Debian trixie only ever ships Node 20 and cmake/FindPnpm.cmake
# already had to work around that. The upstream image verified the nodejs.org
# tarball against the Node release GPG keys and its SHA256 before unpacking it,
# so we inherit that. Same approach as compose/monetr-frontend.Dockerfile.
COPY --from=node /usr/local/bin/node /usr/local/bin/node
COPY --from=node /usr/local/lib/node_modules /usr/local/lib/node_modules
RUN ln -s ../lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm && \
    ln -s ../lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx

RUN git config --global --add safe.directory /monetr

FROM base_builder AS monetr_builder
ARG REVISION
ARG RELEASE
ARG BUILD_HOST

# Multi platform
ARG TARGETOS
ARG TARGETARCH

ARG GOFLAGS
ENV GOFLAGS=$GOFLAGS
COPY . /monetr
RUN GOOS=${TARGETOS} GOARCH=${TARGETARCH} make release -B MONETR_BUILD_TYPE=container

FROM debian:13-slim@sha256:a29215f6a35e51e22adffa17f89e9d2ef06214e64a2bad10d765c46aea49f11f
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
      # renovate: datasource=deb depName=tzdata versioning=deb
      tzdata=2026c-0+deb13u1 \
      # renovate: datasource=deb depName=ca-certificates versioning=deb
      ca-certificates=20250419 \
    && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

RUN groupadd -g 1000 monetr && \
    useradd -rm -d /home/monetr -s /bin/bash -g monetr -u 1000 monetr
RUN mkdir -p /etc/monetr && chown -R monetr:monetr /etc/monetr
USER monetr
WORKDIR /home/monetr

EXPOSE 4000
VOLUME ["/etc/monetr"]
ENTRYPOINT ["/usr/bin/monetr"]
CMD ["serve"]

COPY --from=monetr_builder /monetr/build/monetr /usr/bin/monetr