aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Dockerfile.dev32
1 files changed, 32 insertions, 0 deletions
diff --git a/Dockerfile.dev b/Dockerfile.dev
new file mode 100644
index 0000000..9032790
--- /dev/null
+++ b/Dockerfile.dev
@@ -0,0 +1,32 @@
+FROM mcr.microsoft.com/devcontainers/rust:2-trixie
+
+## Tooling and configuration
+ARG PKGS_TOOLS="sqlite3 sqlite3-tools"
+RUN apt-get update \
+ && apt-get upgrade -y \
+ && apt-get install -y hx starship sudo ${PKGS_TOOLS}
+
+## Code area configuration
+ARG WORKING_DIR="/code"
+RUN mkdir -p ${WORKING_DIR}
+
+## Container user - will override 'vscode', 'users' defaults
+ARG USER=sparrow
+ARG USER_UID=1000
+ARG USER_GID=1000
+ARG USERS_GID=998
+RUN groupmod -n ${USER} "$(grep ${USER_GID} /etc/group | cut -d: -f1)" \
+ && groupmod --gid ${USERS_GID} users \
+ && usermod -l ${USER} -m -d /home/${USER} -Gusers "$(grep ${USER_UID} /etc/passwd | cut -d: -f1)" \
+ && chown -R ${USER_UID}:${USER_GID} /home/${USER} \
+ && echo "${USER} ALL=\(root\) NOPASSWD:ALL" > /etc/sudoers.d/${USER} \
+ && chmod 0440 /etc/sudoers.d/${USER}
+RUN echo 'eval "$(starship init zsh)"' >> /home/${USER}/.zshrc \
+ && chown ${USER}:${USER} ${WORKING_DIR}
+
+USER ${USER}
+
+RUN mkdir ~/.gnupg \
+ && chmod 0700 ~/.gnupg
+
+WORKDIR ${WORKING_DIR}