11ARG DEV_PYTHON=3.13.5
22FROM python:${DEV_PYTHON}
33
4+ ARG KUBECTL_VERSION=1.35.0
5+ ARG POPEYE_VERSION=0.22.1
6+ ARG UV_VERSION=0.10.4
7+
48# The target platform.
59# Some tool installations (like kubectl) need to know whether we're AMD or ARM
610# The value will be the platform value used in the build ("linux/amd64" or "linux/arm64")
@@ -39,14 +43,12 @@ RUN groupadd --gid $USER_GID $USERNAME \
3943 && echo "$SNIPPET" >> "/home/$USERNAME/.bashrc"
4044
4145# Install our python requirements, and kubectl
42- ARG KUBECTL_VERSION=1.31.11
4346COPY requirements.txt /tmp
4447RUN pip install -r /tmp/requirements.txt \
4548 && curl -LO https://dl.k8s.io/release/v${KUBECTL_VERSION}/bin/${TARGETPLATFORM}/kubectl \
4649 && install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl \
4750 && rm kubectl
4851# Popeye (ARM or AMD)
49- ARG POPEYE_VERSION=0.22.1
5052RUN if [ "$TARGETPLATFORM" = "linux/arm64" ]; then \
5153 wget https://github.com/derailed/popeye/releases/download/v${POPEYE_VERSION}/popeye_linux_arm64.tar.gz && \
5254 tar -xf popeye_linux_arm64.tar.gz; \
@@ -58,5 +60,17 @@ RUN if [ "$TARGETPLATFORM" = "linux/arm64" ]; then \
5860 fi \
5961 && mv popeye /usr/local/bin \
6062 && rm LICENSE README.md
63+ # uv
64+ ADD https://astral.sh/uv/${UV_VERSION}/install.sh /uv-installer.sh
65+ RUN apt-get update \
66+ && apt-get install -y \
67+ vim \
68+ && sh /uv-installer.sh \
69+ && rm /uv-installer.sh \
70+ && mv /root/.local/bin/uv /usr/local/bin \
71+ && mv /root/.local/bin/uvx /usr/local/bin \
72+ && chown -R $USERNAME /usr/local/bin/uv \
73+ && chown -R $USERNAME /usr/local/bin/uvx
74+ ENV UV_LINK_MODE=copy
6175
6276USER $USERNAME
0 commit comments