Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
25ca0f8
refactor: use bindep for dynamic package resolution
mnaser Jan 23, 2026
c32596b
fix: use explicit platform selectors in bindep.txt
mnaser Jan 23, 2026
630f3e9
refactor: simplify bindep.txt for single distro version per branch
mnaser Jan 23, 2026
f7f18c6
feat: add install_packages script for distro-agnostic package install…
mnaser Jan 23, 2026
4222036
ci: use matrix strategy for parallel image builds
mnaser Jan 25, 2026
25288ba
ci: add job name for cleaner matrix labels
mnaser Jan 25, 2026
5eaa828
ci: use generic OS names for branch protection rules
mnaser Jan 25, 2026
5af40f4
ci: expand matrix to support multiple OS bases
mnaser Jan 25, 2026
ad8a586
fix: remove redhat-lsb-core (not available on EL9)
mnaser Jan 25, 2026
b128314
ci: standardize image naming to python-base-<os> pattern
mnaser Jan 25, 2026
5a1bd73
refactor: use BuildKit mount for packages.txt
mnaser Jan 25, 2026
3272c7e
refactor: use BuildKit mount for uvx binary
mnaser Jan 25, 2026
f1d812f
fix: mount both uv and uvx binaries
mnaser Jan 25, 2026
ee0bef0
refactor: mount bindep.txt from build context
mnaser Jan 25, 2026
c6a31a8
refactor: simplify to single stage with inline bindep
mnaser Jan 25, 2026
0be32eb
refactor: mount all build tools, nothing left in final image
mnaser Jan 25, 2026
eda5421
refactor: use centralized build-utils image
mnaser Jan 25, 2026
04f3273
chore: mount build-utils at /build
mnaser Jan 25, 2026
3fac097
refactor: remove default FROM arg, require it via build-args
mnaser Jan 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,30 @@ on:

jobs:
image:
name: ${{ matrix.name }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- name: ubuntu
image-name: python-base-ubuntu
from: ubuntu:24.04
- name: ubuntu-cloud-archive
image-name: python-base-ubuntu-cloud-archive
from: ghcr.io/vexxhost/ubuntu-cloud-archive:main@sha256:de1f31c2017c1928ec9c8f5f22c00cc4779a4f303b1ca647072fcd12b5184d90
- name: ubuntu-cloud-archive-legacy
image-name: python-base
from: ghcr.io/vexxhost/ubuntu-cloud-archive:main@sha256:de1f31c2017c1928ec9c8f5f22c00cc4779a4f303b1ca647072fcd12b5184d90
- name: debian
image-name: python-base-debian
from: debian:trixie
- name: rockylinux
image-name: python-base-rockylinux
from: rockylinux:9
- name: almalinux
image-name: python-base-almalinux
from: almalinux:9
permissions:
contents: read
id-token: write
Expand All @@ -19,5 +42,6 @@ jobs:
steps:
- uses: vexxhost/docker-atmosphere/.github/actions/build-image@main
with:
image-name: python-base
image-name: ${{ matrix.image-name }}
build-args: FROM=${{ matrix.from }}
push: ${{ github.event_name != 'pull_request' }}
18 changes: 6 additions & 12 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
# SPDX-FileCopyrightText: © 2025 VEXXHOST, Inc.
# SPDX-License-Identifier: GPL-3.0-or-later

FROM ghcr.io/vexxhost/ubuntu-cloud-archive:main@sha256:de1f31c2017c1928ec9c8f5f22c00cc4779a4f303b1ca647072fcd12b5184d90
ARG FROM

FROM ${FROM}
ENV PATH=/var/lib/openstack/bin:$PATH
RUN \
apt-get update -qq && \
apt-get install -qq -y --no-install-recommends \
ca-certificates \
libpython3.12 \
lsb-release \
libpcre3 \
python3-setuptools \
sudo && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN --mount=type=bind,source=bindep.txt,target=/bindep.txt \
--mount=type=bind,from=ghcr.io/vexxhost/build-utils:latest,source=/bin,target=/build \
/build/install-bindep-packages
10 changes: 10 additions & 0 deletions bindep.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
ca-certificates
libpcre2-8-0 [platform:debian]
libpcre3 [platform:ubuntu]
libpython3.12 [platform:ubuntu]
libpython3.13 [platform:debian]
pcre2 [platform:redhat]
python3-libs [platform:redhat]
lsb-release [platform:dpkg]
python3-setuptools
sudo
Loading