ngit 3.0.0-rc.2

nostr plugin for git
Documentation
# syntax=docker/dockerfile:1
ARG TARGET=ngit-cli

ARG ALPINE_VERSION="3.21"
ARG RUST_VERSION="1.95"
ARG BUILD_IMAGE=docker.io/rust:${RUST_VERSION}-alpine${ALPINE_VERSION}

FROM ${BUILD_IMAGE} AS builder
RUN apk --no-cache add \
  libressl-dev
WORKDIR /src
COPY . .
# perform single-architecture build.
# TARGETARCH automatically set by buildx.
ARG TARGETARCH=amd64
RUN cargo build \
        --release \
        --locked \
        --target "$(echo "${TARGETARCH}" | sed -e s/arm64/aarch64/ -e s/amd64/x86_64/)-unknown-linux-musl"

RUN find -mmin -2 -type f

RUN mkdir -p /out/ && \
  find target \(  \
      -path '*/release/git-remote-nostr' -o \
      -path '*/release/ngit'  \
    \) -exec mv -v {} /out/ \;


FROM docker.io/alpine:${ALPINE_VERSION} AS base
RUN apk --no-cache add \
  git libcrypto3 libressl
ARG UID=65534
ARG GID=65534
RUN mkdir -p /opt/ngit && chown ${UID}:${GID} /opt/ngit
USER ${UID}:${GID}
ENV HOME=/opt/ngit
WORKDIR /opt/ngit


FROM base AS ngit-cli
COPY --from=builder /out/* /usr/local/bin/
ENTRYPOINT ["/usr/local/bin/ngit"]


FROM ngit-cli AS ngit-utils
USER root
ARG EXTRA_PACKAGES="bash curl git grep jq netcat-openbsd psmisc sed strace tar xz"
RUN apk --no-cache add ${EXTRA_PACKAGES}
ARG UID=65534
ARG GID=65534
USER ${UID}:${GID}
ENTRYPOINT ["/bin/bash"]


FROM ${TARGET}