Skip to content

Commit

Permalink
Upgrade base image from Debian Bullseye (oldstable) to Bookworm (stable)
Browse files Browse the repository at this point in the history
Avail ourselves of newer (though still not _new_ ;) software, in
particular the SQLite CLI.

The use of Bullseye's version number, 11, instead of its name in the
builder-build-platform image tripped me up at first, so I've switched it
over to Bookworm's name instead of number (12).

The cross-compilation of vcftools targeting arm64/aarch64 on amd64
requires pkg-config installed for the target platform with xx-apt-get.
Without it, the vcftool's configure script can't find zlib since its
using the build platform's pkg-config and zlib is not installed for the
build platform.  I'm not sure why this worked previously but not now.

The libopenblas-base package was renamed libopenblas0.  In Bullseye, the
former was a dependency-only package to allow older systems coming from
Buster (oldoldstable), or instructions based on it, to more gracefully
transition to Bullseye.  The transitional package was removed in
Bookworm.
  • Loading branch information
tsibley committed Sep 5, 2024
1 parent f27da40 commit 97d6efc
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ FROM --platform=$BUILDPLATFORM tonistiigi/xx AS xx
# Define a builder stage that runs on the build platform.
# Even if the target platform is different, instructions will run natively for
# faster compilation.
FROM --platform=$BUILDPLATFORM debian:11-slim AS builder-build-platform
FROM --platform=$BUILDPLATFORM debian:bookworm-slim AS builder-build-platform

SHELL ["/bin/bash", "-e", "-u", "-o", "pipefail", "-c"]

Expand Down Expand Up @@ -63,6 +63,7 @@ RUN xx-apt-get install -y \
gcc \
g++ \
libc6-dev \
pkg-config \
zlib1g-dev

# Add dependencies. All should be pinned to specific versions, except
Expand Down Expand Up @@ -224,7 +225,7 @@ RUN curl -fsSL https://ftp.ncbi.nlm.nih.gov/pub/datasets/command-line/v2/linux-$
# This is in place for Python programs which are not easy to install for a
# different target platform¹.
# ¹ https://github.com/pypa/pip/issues/5453
FROM --platform=$TARGETPLATFORM python:3.10-slim-bullseye AS builder-target-platform
FROM --platform=$TARGETPLATFORM python:3.10-slim-bookworm AS builder-target-platform

SHELL ["/bin/bash", "-e", "-u", "-o", "pipefail", "-c"]

Expand Down Expand Up @@ -350,7 +351,7 @@ RUN pip3 install evofr
# ———————————————————————————————————————————————————————————————————— #

# Now build the final image.
FROM python:3.10-slim-bullseye AS final
FROM python:3.10-slim-bookworm AS final

SHELL ["/bin/bash", "-e", "-u", "-o", "pipefail", "-c"]

Expand Down Expand Up @@ -407,7 +408,7 @@ ARG TARGETPLATFORM
# ¹ https://cvxopt.org/install/#building-and-installing-from-source
RUN if [[ "$TARGETPLATFORM" == linux/arm64 ]]; then \
apt-get update && apt-get install -y --no-install-recommends \
libopenblas-base \
libopenblas0 \
; \
fi

Expand Down

0 comments on commit 97d6efc

Please sign in to comment.