@@ -14,14 +14,8 @@ RUN mkdir -p $PIP_CACHE_DIR
1414ARG USERNAME
1515LABEL org.opencontainers.image.source=https://github.com/OpenJKSoftware/python-devcontainer
1616
17- # Install uv
18- COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
19- ENV UV_CACHE_DIR=/var/cache/uv \
20- UV_PYTHON_CACHE_DIR=/var/cache/uv/python \
21- UV_LINK_MODE=copy \
22- UV_COMPILE_BYTECODE=1
23- RUN set -x; mkdir -p $UV_CACHE_DIR && mkdir -p $UV_PYTHON_CACHE_DIR
24- RUN --mount=type=cache,target=/var/cache uv python install ${PYTHONVERSION} --default
17+ # Ensure Apt cache is kept between builds
18+ RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
2519
2620# Install Base Reqs
2721COPY scripts/install_base_deps.sh /tmp/
@@ -31,9 +25,12 @@ RUN /tmp/install_base_deps.sh
3125RUN useradd --shell /usr/bin/zsh --create-home ${USERNAME} -u 1000 \
3226 && mkdir -pm 700 /root/.ssh \
3327 && echo "alias vi=nvim" > /etc/profile.d/vim_nvim.sh \
34- && chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}
28+ && chown -R ${USERNAME}:${USERNAME} /home/${USERNAME} \
29+ && echo "${USERNAME} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
3530ENV EDITOR=nvim
3631
32+
33+
3734# Fix Locale issues
3835RUN set -x; \
3936 apt-get install locales -y --no-install-recommends \
@@ -47,11 +44,16 @@ RUN set -x; \
4744COPY known_hosts /root/.ssh/known_hosts
4845COPY --chown=${USERNAME}:${USERNAME} known_hosts /home/${USERNAME}/.ssh/known_hosts
4946
50- # Sudo Support
51- RUN set -x; \
52- apt-get -y install --no-install-recommends sudo \
53- && echo "${USERNAME} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
47+ # Install uv
48+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
49+ ENV UV_CACHE_DIR=/var/cache/uv \
50+ UV_PYTHON_CACHE_DIR=/var/cache/uv/python \
51+ UV_LINK_MODE=copy \
52+ UV_COMPILE_BYTECODE=1
53+ RUN set -x; mkdir -p $UV_CACHE_DIR && mkdir -p $UV_PYTHON_CACHE_DIR
54+ RUN --mount=type=cache,target=/var/cache/uv,sharing=locked uv python install ${PYTHONVERSION} --default
5455
56+ RUN apt autoremove --purge -y && apt clean -y
5557
5658# Non Root User
5759USER ${USERNAME}
@@ -63,6 +65,4 @@ RUN set -x ; \
6365 && sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
6466COPY --chown=${USERNAME}:${USERNAME} .zshrc .zshrc
6567
66-
67- RUN sudo bash -c "rm -rf {./*,/tmp/*,/var/cache/apt/*,/var/lib/apt/lists/*,$PIP_CACHE_DIR/*}"
6868ENTRYPOINT [ "/usr/bin/zsh" ]
0 commit comments