kredens/dockerfiles/devcontainer.dockerfile

61 lines
1.9 KiB
Plaintext
Raw Normal View History

2025-01-23 02:58:00 +00:00
FROM mcr.microsoft.com/devcontainers/base:bookworm
2025-01-23 05:15:57 +00:00
ARG USERNAME=vscode
2025-01-23 02:58:00 +00:00
# Install things I need for Caddy and such
RUN \
--mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
rm -f \
/etc/apt/apt.conf.d/docker-clean \
/etc/apt/apt.conf.d/docker-no-languages \
&& apt-get update -y && apt-get upgrade -y \
&& apt-get install -y --no-install-recommends \
apt-transport-https \
debian-archive-keyring \
debian-keyring \
gnupg \
postgresql-common \
pwgen
2025-01-23 02:58:00 +00:00
# Add Caddy repo
RUN --mount=type=bind,target=/tmp/caddy.key,source=./dockerfiles/assets/keys/caddy.key \
2025-01-23 02:58:00 +00:00
gpg -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg --dearmor /tmp/caddy.key
COPY ./dockerfiles/assets/apt-sources/caddy-stable.list /etc/apt/sources.list
# Add Postgresql repo
RUN /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -y
2025-01-23 02:58:00 +00:00
RUN \
--mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt-get update -y && apt-get upgrade -y \
2025-01-23 02:58:00 +00:00
&& apt-get install -y --no-install-recommends \
caddy \
postgresql-client
2025-01-23 04:38:52 +00:00
RUN mkdir -p /workspaces/kredens && chown vscode:vscode /workspaces
WORKDIR /workspaces/kredens
2025-01-23 05:15:57 +00:00
# Persist history
RUN \
SNIPPET="export PROMPT_COMMAND='history -a' && export HISTFILE=/commandhistory/.bash_history" \
2025-01-23 05:15:57 +00:00
&& mkdir /commandhistory \
&& touch /commandhistory/.bash_history \
&& chown -R $USERNAME /commandhistory \
&& echo "$SNIPPET" >> "/home/$USERNAME/.bashrc"
RUN \
mkdir -p /home/${USERNAME}/.local/bin/ \
&& chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.local/
COPY --chown=${USERNAME}:${USERNAME} \
dockerfiles/assets/scripts/onCreate.sh \
dockerfiles/assets/scripts/postAttach.sh \
/home/${USERNAME}/.local/bin/
USER ${USERNAME}