Skip to content

Commit 2eb4e57

Browse files
committed
Fixed Certbot plugin dependencies conflicts caused by the unbundled version of pip from the Alpine repo.
1 parent fbbd4e3 commit 2eb4e57

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

Dockerfile

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,9 @@ RUN \
176176
# Install dependencies.
177177
RUN \
178178
add-pkg \
179+
curl \
179180
nodejs \
180-
py3-pip \
181+
python3 \
181182
sqlite \
182183
openssl \
183184
apache2-utils \
@@ -199,10 +200,20 @@ RUN \
199200
openssl-dev \
200201
cargo \
201202
&& \
202-
CARGO_HOME=/tmp/.cargo pip install --prefix=/usr certbot && \
203+
# Install pip first.
204+
# NOTE: pip from the Alpine package repository is debundled, meaning that
205+
# its dependencies are part of the system-wide ones. This save a lot
206+
# of space, but these dependencies conflict with the ones required by
207+
# Certbot plugins. Thus, we need to manually install pip (with its
208+
# built-in dependencies). See:
209+
# https://pip.pypa.io/en/stable/development/vendoring-policy/
210+
curl -# -L "https://bootstrap.pypa.io/get-pip.py" | python3 && \
211+
# Then install certbot.
212+
CARGO_HOME=/tmp/.cargo pip install --no-cache-dir --prefix=/usr certbot && \
203213
find /usr/lib/python3.8/site-packages -type f -name "*.so" -exec strip {} ';' && \
204214
find /usr/lib/python3.8/site-packages -type f -name "*.h" -delete && \
205215
find /usr/lib/python3.8/site-packages -type f -name "*.c" -delete && \
216+
find /usr/lib/python3.8/site-packages -type f -name "*.exe" -delete && \
206217
find /usr/lib/python3.8/site-packages -type d -name tests -print0 | xargs -0 rm -r && \
207218
# Cleanup.
208219
del-pkg build-dependencies && \

0 commit comments

Comments
 (0)