Skip to content

Commit 4e8ac69

Browse files
authored
Replace pipx with pip + venv, install cmake with pip (#38)
For consistency with Debian images, where we were forced to do similar change for compatibility with Bullseye in #37
1 parent f68bead commit 4e8ac69

File tree

8 files changed

+44
-20
lines changed

8 files changed

+44
-20
lines changed

.github/workflows/rhel.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ env:
2222
BUILDKIT_PROGRESS: plain
2323
CONAN_VERSION: 2.19.1
2424
GCOVR_VERSION: 8.3
25+
CMAKE_VERSION: 3.31.6
2526

2627
jobs:
2728
# Build the Docker image for Red Hat Enterprise Linux using different versions
@@ -113,6 +114,7 @@ jobs:
113114
CONAN_VERSION=${{ env.CONAN_VERSION }}
114115
GCC_VERSION=${{ matrix.os.compiler_version }}
115116
GCOVR_VERSION=${{ env.GCOVR_VERSION }}
117+
CMAKE_VERSION=${{ env.CMAKE_VERSION }}
116118
RHEL_VERSION=${{ matrix.os.release }}
117119
context: .
118120
file: docker/rhel/Dockerfile

.github/workflows/ubuntu.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ env:
2121
BUILDKIT_PROGRESS: plain
2222
CONAN_VERSION: 2.19.1
2323
GCOVR_VERSION: 8.3
24+
CMAKE_VERSION: 3.31.6
2425
FALLBACK_GCC: 12
2526
FALLBACK_CLANG: 16
2627

@@ -109,6 +110,7 @@ jobs:
109110
CONAN_VERSION=${{ env.CONAN_VERSION }}
110111
GCC_VERSION=${{ matrix.os.compiler_name == 'gcc' && matrix.os.compiler_version || env.FALLBACK_GCC }}
111112
GCOVR_VERSION=${{ env.GCOVR_VERSION }}
113+
CMAKE_VERSION=${{ env.CMAKE_VERSION }}
112114
UBUNTU_VERSION=${{ matrix.os.release }}
113115
context: .
114116
file: docker/ubuntu/Dockerfile

docker/debian/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ apt-get clean
5757
rm -rf /var/lib/apt/lists/*
5858
EOF
5959

60-
# Install Python-based tools.
60+
# Install Python-based tools and cmake.
6161
ARG CONAN_VERSION
6262
ARG GCOVR_VERSION
6363
ARG CMAKE_VERSION

docker/rhel/Dockerfile

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ ENTRYPOINT ["/bin/bash"]
1111
RUN <<EOF
1212
pkgs=()
1313
pkgs+=(ca-certificates) # Enable TLS verification for HTTPS connections by providing trusted root certificates.
14-
pkgs+=(cmake) # Required build tool.
1514
pkgs+=(file) # Required packaging tool.
1615
pkgs+=(git) # Required build tool.
1716
pkgs+=(gpg) # Dependency for tools requiring signing or encrypting/decrypting.
@@ -23,7 +22,6 @@ pkgs+=(perl-FindBin) # Required to compile OpenSSL.
2322
pkgs+=(perl-File-Compare) # Required to compile OpenSSL.
2423
pkgs+=(python3.12) # Required build tool.
2524
pkgs+=(python3.12-pip) # Package manager for Python applications.
26-
pkgs+=(python3-jinja2) # Required build tool.
2725
pkgs+=(rpm-build) # Required packaging tool.
2826
pkgs+=(rpmdevtools) # Required packaging tool.
2927
pkgs+=(vim) # Text editor.
@@ -49,10 +47,18 @@ mkdir -p /usr/local/lib
4947
ln -sf /usr/lib/python3.12 /usr/local/lib/python3.12
5048
EOF
5149

52-
# Install Python-based tools.
50+
# Install Python-based tools and cmake.
5351
ARG CONAN_VERSION
5452
ARG GCOVR_VERSION
55-
RUN pip install --no-cache conan==${CONAN_VERSION} gcovr==${GCOVR_VERSION}
53+
ARG CMAKE_VERSION
54+
55+
ENV VIRTUAL_ENV=/opt/venv
56+
RUN python3 -m venv ${VIRTUAL_ENV}
57+
ENV PATH=${VIRTUAL_ENV}/bin:${PATH}
58+
RUN pip install --no-cache \
59+
conan==${CONAN_VERSION} \
60+
gcovr==${GCOVR_VERSION} \
61+
cmake==${CMAKE_VERSION}
5662

5763
# ====================== GCC IMAGE ======================
5864
FROM base AS gcc

docker/rhel/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ RHEL_VERSION=9.6
6464
GCC_VERSION=13
6565
CONAN_VERSION=2.19.1
6666
GCOVR_VERSION=8.3
67+
CMAKE_VERSION=3.31.6
6768
CONTAINER_IMAGE=xrplf/ci/rhel-${RHEL_VERSION}:gcc-${GCC_VERSION}
6869

6970
docker buildx build . \
@@ -74,6 +75,7 @@ docker buildx build . \
7475
--build-arg CONAN_VERSION=${CONAN_VERSION} \
7576
--build-arg GCC_VERSION=${GCC_VERSION} \
7677
--build-arg GCOVR_VERSION=${GCOVR_VERSION} \
78+
--build-arg CMAKE_VERSION=${CMAKE_VERSION} \
7779
--build-arg RHEL_VERSION=${RHEL_VERSION} \
7880
--tag ${CONTAINER_REGISTRY}/${CONTAINER_IMAGE}
7981
```
@@ -87,6 +89,7 @@ registry.
8789
RHEL_VERSION=9.6
8890
CONAN_VERSION=2.19.1
8991
GCOVR_VERSION=8.3
92+
CMAKE_VERSION=3.31.6
9093
CONTAINER_IMAGE=xrplf/ci/rhel-${RHEL_VERSION}:clang-any
9194

9295
docker buildx build . \
@@ -96,6 +99,7 @@ docker buildx build . \
9699
--build-arg BUILDKIT_INLINE_CACHE=1 \
97100
--build-arg CONAN_VERSION=${CONAN_VERSION} \
98101
--build-arg GCOVR_VERSION=${GCOVR_VERSION} \
102+
--build-arg CMAKE_VERSION=${CMAKE_VERSION} \
99103
--build-arg RHEL_VERSION=${RHEL_VERSION} \
100104
--tag ${CONTAINER_REGISTRY}/${CONTAINER_IMAGE}
101105
```

docker/tools-rippled/Dockerfile

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ pkgs+=(git) # Required build tool.
3131
pkgs+=(gpg) # Dependency for tools requiring signing or encrypting/decrypting.
3232
pkgs+=(gpg-agent) # Dependency for tools requiring signing or encrypting/decrypting.
3333
pkgs+=(jq) # Pretty printing.
34-
pkgs+=(pipx) # Package manager for Python applications.
34+
pkgs+=(python3-venv) # Python environment management tool.
35+
pkgs+=(python3-pip) # Package manager for Python applications.
3536
pkgs+=(wget) # Required build tool.
3637
pkgs+=(vim) # Text editor.
3738
apt-get update
@@ -40,9 +41,10 @@ apt-get clean
4041
rm -rf /var/lib/apt/lists/*
4142
EOF
4243

43-
ENV PIPX_HOME=/opt/pipx \
44-
PIPX_BIN_DIR=/usr/bin \
45-
PIPX_MAN_DIR=/usr/share/man
44+
# Prepare the environment for Python-based tools.
45+
ENV VIRTUAL_ENV=/opt/venv
46+
RUN python3 -m venv ${VIRTUAL_ENV}
47+
ENV PATH=${VIRTUAL_ENV}/bin:${PATH}
4648

4749
# ====================== CLANG-FORMAT IMAGE ======================
4850
# Note, we do not install a compiler here.
@@ -56,8 +58,9 @@ ARG DEBIAN_FRONTEND=noninteractive
5658
# Install clang-format.
5759
ARG CLANG_FORMAT_VERSION
5860
ARG PRE_COMMIT_VERSION
59-
RUN pipx install --pip-args='--no-cache' clang-format==${CLANG_FORMAT_VERSION} && \
60-
pipx install --pip-args='--no-cache' pre-commit==${PRE_COMMIT_VERSION}
61+
RUN pip install --no-cache \
62+
clang-format==${CLANG_FORMAT_VERSION} \
63+
pre-commit==${PRE_COMMIT_VERSION}
6164

6265
ENV HOME=/root
6366
WORKDIR ${HOME}

docker/ubuntu/Dockerfile

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ EOF
2626
RUN <<EOF
2727
pkgs=()
2828
pkgs+=(ca-certificates) # Enable TLS verification for HTTPS connections by providing trusted root certificates.
29-
pkgs+=(cmake) # Required build tool.
3029
pkgs+=(curl) # Dependency for tools requiring downloading data.
3130
pkgs+=(dpkg-dev) # Required packaging tool.
3231
pkgs+=(file) # Required packaging tool.
@@ -36,8 +35,8 @@ pkgs+=(gpg-agent) # Dependency for tools requiring signing or encrypting/d
3635
pkgs+=(jq) # JSON manipulation.
3736
pkgs+=(libc6-dev) # Required build tool.
3837
pkgs+=(ninja-build) # Required build tool.
39-
pkgs+=(pipx) # Package manager for Python applications.
40-
pkgs+=(python3-jinja2) # Required build tool.
38+
pkgs+=(python3-venv) # Python environment management tool.
39+
pkgs+=(python3-pip) # Package manager for Python applications.
4140
pkgs+=(vim) # Text editor.
4241
pkgs+=(wget) # Required build tool.
4342
apt-get update
@@ -46,14 +45,18 @@ apt-get clean
4645
rm -rf /var/lib/apt/lists/*
4746
EOF
4847

49-
# Install Python-based tools.
48+
# Install Python-based tools and cmake.
5049
ARG CONAN_VERSION
5150
ARG GCOVR_VERSION
52-
ENV PIPX_HOME=/opt/pipx \
53-
PIPX_BIN_DIR=/usr/bin \
54-
PIPX_MAN_DIR=/usr/share/man
55-
RUN pipx install --pip-args='--no-cache' conan==${CONAN_VERSION} && \
56-
pipx install --pip-args='--no-cache' gcovr==${GCOVR_VERSION}
51+
ARG CMAKE_VERSION
52+
53+
ENV VIRTUAL_ENV=/opt/venv
54+
RUN python3 -m venv ${VIRTUAL_ENV}
55+
ENV PATH=${VIRTUAL_ENV}/bin:${PATH}
56+
RUN pip install --no-cache \
57+
conan==${CONAN_VERSION} \
58+
gcovr==${GCOVR_VERSION} \
59+
cmake==${CMAKE_VERSION}
5760

5861
# ====================== GCC IMAGE ======================
5962
FROM base AS gcc

docker/ubuntu/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ UBUNTU_VERSION=noble
4444
GCC_VERSION=14
4545
CONAN_VERSION=2.19.1
4646
GCOVR_VERSION=8.3
47+
CMAKE_VERSION=3.31.6
4748
CONTAINER_IMAGE=xrplf/ci/ubuntu-${UBUNTU_VERSION}:gcc-${GCC_VERSION}
4849

4950
docker buildx build . \
@@ -54,6 +55,7 @@ docker buildx build . \
5455
--build-arg CONAN_VERSION=${CONAN_VERSION} \
5556
--build-arg GCC_VERSION=${GCC_VERSION} \
5657
--build-arg GCOVR_VERSION=${GCOVR_VERSION} \
58+
--build-arg CMAKE_VERSION=${CMAKE_VERSION} \
5759
--build-arg UBUNTU_VERSION=${UBUNTU_VERSION} \
5860
--tag ${CONTAINER_REGISTRY}/${CONTAINER_IMAGE}
5961
```
@@ -68,6 +70,7 @@ UBUNTU_VERSION=noble
6870
CLANG_VERSION=18
6971
CONAN_VERSION=2.19.1
7072
GCOVR_VERSION=8.3
73+
CMAKE_VERSION=3.31.6
7174
CONTAINER_IMAGE=xrplf/ci/ubuntu-${UBUNTU_VERSION}:clang-${CLANG_VERSION}
7275

7376
docker buildx build . \
@@ -78,6 +81,7 @@ docker buildx build . \
7881
--build-arg CLANG_VERSION=${CLANG_VERSION} \
7982
--build-arg CONAN_VERSION=${CONAN_VERSION} \
8083
--build-arg GCOVR_VERSION=${GCOVR_VERSION} \
84+
--build-arg CMAKE_VERSION=${CMAKE_VERSION} \
8185
--build-arg UBUNTU_VERSION=${UBUNTU_VERSION} \
8286
--tag ${CONTAINER_REGISTRY}/${CONTAINER_IMAGE}
8387
```

0 commit comments

Comments
 (0)