my harness for niri
1FROM ubuntu:24.04
2
3ENV DEBIAN_FRONTEND=noninteractive
4
5RUN apt-get update && apt-get install -y \
6 sudo curl wget git vim nano jq \
7 python3 python3-pip \
8 ca-certificates \
9 && rm -rf /var/lib/apt/lists/*
10
11ARG AGENT_USER=niri
12ARG AGENT_UID=1000
13ARG AGENT_GID=1000
14RUN set -eux; \
15 if getent group "${AGENT_GID}" >/dev/null 2>&1; then \
16 group_name="$(getent group "${AGENT_GID}" | cut -d: -f1)"; \
17 else \
18 group_name="${AGENT_USER}"; \
19 groupadd -g "${AGENT_GID}" "${group_name}"; \
20 fi; \
21 existing_user="$(getent passwd "${AGENT_UID}" | cut -d: -f1 || true)"; \
22 if [ -n "${existing_user}" ] && [ "${existing_user}" != "${AGENT_USER}" ]; then \
23 usermod -l "${AGENT_USER}" "${existing_user}"; \
24 usermod -d "/home/${AGENT_USER}" -m "${AGENT_USER}"; \
25 elif ! id -u "${AGENT_USER}" >/dev/null 2>&1; then \
26 useradd -m -u "${AGENT_UID}" -g "${group_name}" -s /bin/bash "${AGENT_USER}"; \
27 fi; \
28 usermod -u "${AGENT_UID}" "${AGENT_USER}" 2>/dev/null || true; \
29 usermod -g "${AGENT_GID}" "${AGENT_USER}"; \
30 echo "${AGENT_USER} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers; \
31 mkdir -p "/home/${AGENT_USER}"; \
32 chown -R "${AGENT_UID}:${AGENT_GID}" "/home/${AGENT_USER}"
33
34WORKDIR /home/$AGENT_USER
35USER $AGENT_USER
36
37CMD ["sleep", "infinity"]