zenops 0.20.0

Declarative system configuration management for shell config and dotfiles.
# Upstream `archlinux:latest` is the official Arch Linux Docker image
# from the Arch project itself. It ships amd64 only — on arm64 hosts
# (Apple Silicon) Docker emulates via QEMU. The cargo install step
# inside the container takes longer under emulation, but the image
# itself is supported upstream rather than a community fork.
FROM --platform=linux/amd64 archlinux:latest

ENV LC_ALL=C.UTF-8 \
    LANG=C.UTF-8 \
    TERM=xterm-256color

# Pacman 7.0+ runs downloads in a sandboxed `alpm` user with seccomp
# filters. Under QEMU emulation the filter aborts with "error
# restricting syscalls via seccomp" because emulated syscall numbers
# don't match what the filter expects. `DisableSandbox` in pacman.conf
# is the standard containerised-Arch workaround — no security loss
# since the container is itself the sandbox.
RUN echo "DisableSandbox" >> /etc/pacman.conf

RUN pacman -Syu --noconfirm \
 && pacman -S --noconfirm --needed \
        bash zsh git curl base-devel python python-pexpect \
 && pacman -Scc --noconfirm

RUN useradd --create-home --shell /bin/bash tester
USER tester
WORKDIR /home/tester

ENV PATH=/home/tester/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
    CARGO_TARGET_DIR=/tmp/cargo-target

RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
        | sh -s -- -y --no-modify-path --default-toolchain stable

RUN git config --global user.name  "Test User" \
 && git config --global user.email "test@example.com" \
 && git config --global init.defaultBranch main