FROM rust:1.52.1 as builder

WORKDIR /usr/src/pacops
COPY . .
RUN --mount=type=cache,target=/usr/local/cargo/registry \
    --mount=type=cache,target=/home/rust/.cargo/git \
    --mount=type=cache,sharing=private,target=/usr/src/pacops/target \
    cargo build --release && \
    strip target/release/pacops && \
    cp /usr/src/pacops/target/release/pacops /usr/src/pacops

FROM archlinux:base-devel
LABEL version 0.0.1
LABEL description "PacOps Archlinux based build image"
LABEL maintainer="ejiek@mail.ru"

RUN useradd --create-home --home-dir /usr/share/pacops pacops && /bin/echo -e 'Cmnd_Alias PACMAN=/usr/sbin/pacman *\npacops ALL= NOPASSWD: PACMAN' > /etc/sudoers.d/88_pacops

USER pacops
WORKDIR /usr/share/pacops
COPY --from=builder /usr/src/pacops/pacops /usr/bin/
ENTRYPOINT ["/usr/bin/pacops"]
