|
2 | 2 |
|
3 | 3 | FROM golang:1.26-bookworm AS golang |
4 | 4 |
|
5 | | -FROM python:3.13.12-bookworm |
| 5 | +FROM debian:bookworm-slim@sha256:f06537653ac770703bc45b4b113475bd402f451e85223f0f2837acbf89ab020a |
6 | 6 |
|
7 | 7 | ARG PROJECT_NAME=tardigrade-ci |
8 | 8 |
|
9 | 9 | ENV USER=${PROJECT_NAME} |
10 | | -ENV USER_UID=1000 |
11 | | -ENV USER_GID=${USER_UID} |
12 | 10 |
|
13 | 11 | # Things to do as root |
14 | 12 | USER root |
15 | 13 |
|
16 | 14 | RUN apt-get update -y && apt-get install -y \ |
17 | 15 | xz-utils \ |
18 | 16 | curl \ |
| 17 | + git \ |
19 | 18 | jq \ |
20 | 19 | unzip \ |
21 | 20 | make \ |
22 | 21 | vim \ |
23 | | - build-essential \ |
24 | | - libssl-dev \ |
25 | | - zlib1g-dev \ |
26 | | - libbz2-dev \ |
27 | | - libreadline-dev \ |
28 | | - libsqlite3-dev \ |
29 | | - llvm \ |
30 | | - libncursesw5-dev \ |
31 | | - tk-dev \ |
32 | | - libxml2-dev \ |
33 | | - libxmlsec1-dev \ |
34 | | - libffi-dev \ |
35 | | - liblzma-dev \ |
36 | 22 | && touch /.dockerenv \ |
37 | 23 | && rm -rf /var/lib/apt/lists/* |
38 | 24 |
|
39 | | -RUN addgroup --gid ${USER_GID} ${USER} \ |
40 | | - && adduser --disabled-password --gecos '' --uid ${USER_UID} --gid ${USER_GID} ${USER} |
| 25 | +RUN addgroup --gid 1000 ${USER} \ |
| 26 | + && adduser --disabled-password --gecos '' --uid 1000 --gid 1000 ${USER} |
41 | 27 |
|
42 | 28 | COPY --from=golang /usr/local/go/ /usr/local/go/ |
43 | 29 | COPY --chown=${USER}:${USER} --from=golang /go/ /go/ |
44 | 30 | COPY --chown=${USER}:${USER} . /${PROJECT_NAME} |
45 | 31 | COPY entrypoint.sh /usr/local/bin/entrypoint.sh |
46 | 32 |
|
47 | | -RUN --mount=type=secret,id=GITHUB_ACCESS_TOKEN,env=GITHUB_ACCESS_TOKEN \ |
48 | | - make -C /${PROJECT_NAME} fixuid/install \ |
49 | | - && cp /root/bin/fixuid /usr/local/bin/fixuid \ |
50 | | - && chown root:root /usr/local/bin/fixuid \ |
51 | | - && chmod 4755 /usr/local/bin/fixuid\ |
52 | | - && mkdir -p /etc/fixuid \ |
53 | | - && printf "user: $USER\ngroup: $USER\n" > /etc/fixuid/config.yml |
54 | | - |
55 | 33 | # Things to do as $USER |
56 | 34 | USER ${USER} |
57 | 35 |
|
| 36 | +ENV PIP_NO_CACHE_DIR=1 |
| 37 | +ENV UV_NO_CACHE=1 |
| 38 | + |
58 | 39 | ENV HOME="/home/${USER}" |
59 | | -ENV PYENV_ROOT=${HOME}/.pyenv |
60 | | -ENV PATH="$PYENV_ROOT/shims:$PYENV_ROOT/bin:${HOME}/.local/bin:${HOME}/bin:/go/bin:/usr/local/go/bin:${PATH}" |
| 40 | +ENV VIRTUAL_ENV=${HOME}/.venv |
| 41 | +ENV PATH="${VIRTUAL_ENV}/bin:${HOME}/.local/bin:${HOME}/bin:/go/bin:/usr/local/go/bin:${PATH}" |
| 42 | + |
61 | 43 | ENV GOPATH=/go |
62 | 44 | ENV TF_PLUGIN_CACHE_DIR=${HOME}/.terraform.d/plugin-cache |
63 | 45 |
|
64 | 46 | RUN mkdir -p "$TF_PLUGIN_CACHE_DIR" |
65 | 47 |
|
66 | | -RUN --mount=type=secret,id=GITHUB_ACCESS_TOKEN,env=GITHUB_ACCESS_TOKEN \ |
67 | | - make -C /${PROJECT_NAME} install |
| 48 | +RUN --mount=type=secret,id=GITHUB_ACCESS_TOKEN,mode=0400,uid=1000,gid=1000 \ |
| 49 | + GITHUB_ACCESS_TOKEN="$(cat /run/secrets/GITHUB_ACCESS_TOKEN)" \ |
| 50 | + make -C /${PROJECT_NAME} install/build |
68 | 51 |
|
69 | | -# Install python versions |
70 | | -RUN --mount=type=secret,id=GITHUB_ACCESS_TOKEN,env=GITHUB_ACCESS_TOKEN \ |
71 | | - make -C /${PROJECT_NAME} python312/install |
72 | | -RUN pyenv global system $(pyenv versions | grep 3.12) |
73 | 52 | RUN python --version \ |
74 | 53 | && python3 --version \ |
75 | | - && python3.12 --version |
| 54 | + && python3.12 --version \ |
| 55 | + && python3.13 --version \ |
| 56 | + && python3.14 --version |
76 | 57 |
|
77 | 58 | WORKDIR /${PROJECT_NAME} |
78 | 59 | ENTRYPOINT ["entrypoint.sh"] |
0 commit comments