Skip to content

Commit

Permalink
Merge branch 'develop' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
clemlesne committed Nov 22, 2023
2 parents f6f7591 + 55ebb86 commit d4f256c
Show file tree
Hide file tree
Showing 14 changed files with 262 additions and 29 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/pipeline.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,8 @@ jobs:
arch: linux/amd64,linux/arm64
- os: ubi8
arch: linux/amd64,linux/arm64
- os: ubi9
arch: linux/amd64,linux/arm64
steps:
- name: Checkout
uses: actions/[email protected]
Expand Down
22 changes: 12 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,16 @@ helm upgrade --install agent clemlesne-azure-pipelines-agent/azure-pipelines-age

> Container images are both published to GitHub Container Registry and Docker Hub. URLs showed in the doc are GitHub Container Registry URLs, for simplicity. To use Docker Hub, replace `ghcr.io/clemlesne/azure-pipelines-agent` by `docker.io/clemlesne/azure-pipelines-agent`.
| `Ref` | OS | `Size` | `Arch` | Support |
| ----------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ghcr.io/clemlesne/azure-pipelines-agent:bookworm-main` | [Debian Bookworm (12)](https://www.debian.org/releases/bookworm) slim | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/bookworm-main?label=) | `amd64`, `arm64/v8` | [See Debian LTS wiki.](https://wiki.debian.org/LTS) |
| `ghcr.io/clemlesne/azure-pipelines-agent:bullseye-main` | [Debian Bullseye (11)](https://www.debian.org/releases/bullseye) slim | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/bullseye-main?label=) | `amd64`, `arm64/v8` | [See Debian LTS wiki.](https://wiki.debian.org/LTS) |
| `ghcr.io/clemlesne/azure-pipelines-agent:focal-main` | [Ubuntu Focal (20.04)](https://www.releases.ubuntu.com/focal) minimal | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/focal-main?label=) | `amd64`, `arm64/v8` | [See Ubuntu LTS wiki.](https://wiki.ubuntu.com/Releases) |
| `ghcr.io/clemlesne/azure-pipelines-agent:jammy-main` | [Ubuntu Jammy (22.04)](https://www.releases.ubuntu.com/jammy) minimal | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/jammy-main?label=) | `amd64`, `arm64/v8` | [See Ubuntu LTS wiki.](https://wiki.ubuntu.com/Releases) |
| `ghcr.io/clemlesne/azure-pipelines-agent:ubi8-main` | [Red Hat UBI 8 (8.8)](https://developers.redhat.com/articles/ubi-faq) minimal | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/ubi8-main?label=) | `amd64`, `arm64/v8` | [See Red Hat product life cycles.](https://access.redhat.com/product-life-cycles/?product=Red%20Hat%20Enterprise%20Linux) |
| `ghcr.io/clemlesne/azure-pipelines-agent:win-ltsc2019-main` | [Windows Server 2019](https://learn.microsoft.com/en-us/windows-server) Core | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/win-ltsc2019-main?label=) | `amd64` | [See base image servicing lifecycles.](https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/base-image-lifecycle) |
| `ghcr.io/clemlesne/azure-pipelines-agent:win-ltsc2022-main` | [Windows Server 2022](https://learn.microsoft.com/en-us/windows-server) Core | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/win-ltsc2022-main?label=) | `amd64` | [See base image servicing lifecycles.](https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/base-image-lifecycle) |
| `Ref` | OS | `Size` | `Arch` | Support |
| ----------------------------------------------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ghcr.io/clemlesne/azure-pipelines-agent:bookworm-main` | [Debian Bookworm (12)](https://www.debian.org/releases/bookworm) slim | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/bookworm-main?label=) | `amd64`, `arm64/v8` | [See Debian LTS wiki.](https://wiki.debian.org/LTS) |
| `ghcr.io/clemlesne/azure-pipelines-agent:bullseye-main` | [Debian Bullseye (11)](https://www.debian.org/releases/bullseye) slim | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/bullseye-main?label=) | `amd64`, `arm64/v8` | [See Debian LTS wiki.](https://wiki.debian.org/LTS) |
| `ghcr.io/clemlesne/azure-pipelines-agent:focal-main` | [Ubuntu Focal (20.04)](https://www.releases.ubuntu.com/focal) minimal | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/focal-main?label=) | `amd64`, `arm64/v8` | [See Ubuntu LTS wiki.](https://wiki.ubuntu.com/Releases) |
| `ghcr.io/clemlesne/azure-pipelines-agent:jammy-main` | [Ubuntu Jammy (22.04)](https://www.releases.ubuntu.com/jammy) minimal | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/jammy-main?label=) | `amd64`, `arm64/v8` | [See Ubuntu LTS wiki.](https://wiki.ubuntu.com/Releases) |
| `ghcr.io/clemlesne/azure-pipelines-agent:ubi8-main` | [Red Hat UBI 8](https://developers.redhat.com/articles/ubi-faq) minimal | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/ubi8-main?label=) | `amd64`, `arm64/v8` | [See Red Hat product life cycles.](https://access.redhat.com/product-life-cycles/?product=Red%20Hat%20Enterprise%20Linux) |
| `ghcr.io/clemlesne/azure-pipelines-agent:ubi9-main` | [Red Hat UBI 9](https://developers.redhat.com/articles/ubi-faq) minimal | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/ubi9-main?label=) | `amd64`, `arm64/v8` | [See Red Hat product life cycles.](https://access.redhat.com/product-life-cycles/?product=Red%20Hat%20Enterprise%20Linux) |
| `ghcr.io/clemlesne/azure-pipelines-agent:win-ltsc2019-main` | [Windows Server 2019](https://learn.microsoft.com/en-us/windows-server) Core | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/win-ltsc2019-main?label=) | `amd64` | [See base image servicing lifecycles.](https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/base-image-lifecycle) |
| `ghcr.io/clemlesne/azure-pipelines-agent:win-ltsc2022-main` | [Windows Server 2022](https://learn.microsoft.com/en-us/windows-server) Core | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/clemlesne/azure-pipelines-agent/win-ltsc2022-main?label=) | `amd64` | [See base image servicing lifecycles.](https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/base-image-lifecycle) |

## Advanced topics

Expand Down Expand Up @@ -199,6 +200,7 @@ Linux systems are supported, but not Windows:
| `ghcr.io/clemlesne/azure-pipelines-agent:focal-main` | ✅ |
| `ghcr.io/clemlesne/azure-pipelines-agent:jammy-main` | ✅ |
| `ghcr.io/clemlesne/azure-pipelines-agent:ubi8-main` | ✅ |
| `ghcr.io/clemlesne/azure-pipelines-agent:ubi9-main` | ✅ |
| `ghcr.io/clemlesne/azure-pipelines-agent:win-ltsc2019-main` | ❌ |
| `ghcr.io/clemlesne/azure-pipelines-agent:win-ltsc2022-main` | ❌ |

Expand Down Expand Up @@ -362,7 +364,7 @@ extraVolumeMounts:
| `extraVolumeMounts` | Additional volume mounts for the agent container. | `[]` |
| `extraVolumes` | Additional volumes for the agent pod. | `[]` |
| `fullnameOverride` | Overrides release fullname | `""` |
| `image.flavor` | Container image tag, can be `bookworm`, `bullseye`, `focal`, `jammy`, `ubi8`, `win-ltsc2019`, or `win-ltsc2022`. | `bookworm` |
| `image.flavor` | Container image tag, can be `bookworm`, `bullseye`, `focal`, `jammy`, `ubi8`, `ubi9`, `win-ltsc2019`, or `win-ltsc2022`. | `bookworm` |
| `image.isWindows` | Turn on is the agent is a Windows-based system. | `false` |
| `image.pullPolicy` | Container image pull policy | `IfNotPresent` |
| `image.repository` | Container image repository | `ghcr.io/clemlesne/azure-pipelines-agent:bullseye` |
Expand Down
1 change: 1 addition & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Scanned systems:
| `ghcr.io/clemlesne/azure-pipelines-agent:focal-main` ||
| `ghcr.io/clemlesne/azure-pipelines-agent:jammy-main` ||
| `ghcr.io/clemlesne/azure-pipelines-agent:ubi8-main` ||
| `ghcr.io/clemlesne/azure-pipelines-agent:ubi9-main` ||
| `ghcr.io/clemlesne/azure-pipelines-agent:win-ltsc2019-main` ||
| `ghcr.io/clemlesne/azure-pipelines-agent:win-ltsc2022-main` ||

Expand Down
21 changes: 13 additions & 8 deletions cicd/docker-build-local.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,26 @@ FOLDER="src/docker"
PREFIX="${FOLDER}/Dockerfile-"

# Initialize the SUFFIXES variable
SUFFIXES=""
SUFFIXES="$1"

# Check if docker is installed
if ! command -v docker &> /dev/null; then
echo "Docker is not installed, please install it to proceed."
exit
fi

# Iterate over files with the pattern "Dockerfile-*"
for file in $PREFIX*; do
# Extract the suffix from the file name
suffix="${file#$PREFIX}"
# Append the suffix to the SUFFIXES variable
SUFFIXES="${SUFFIXES} ${suffix}"
done
# Check if the SUFFIXES variable is empty
if [ -z "$SUFFIXES" ]; then
echo "No suffixes provided, building all Docker images."

# Iterate over files with the pattern "Dockerfile-*"
for file in $PREFIX*; do
# Extract the suffix from the file name
suffix="${file#$PREFIX}"
# Append the suffix to the SUFFIXES variable
SUFFIXES="${SUFFIXES} ${suffix}"
done
fi

# Print the SUFFIXES variable
echo "Matrix:${SUFFIXES}"
Expand Down
4 changes: 2 additions & 2 deletions src/docker/Dockerfile-bookworm
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ ENV PIP_BREAK_SYSTEM_PACKAGES 1
# - Azure Pipelines agent system requirements
# - zsh, for inter-operability
# - dbus-user-session, fuse-overlayfs, iptables, for BuildKit
# - gzip, make, tar, unzip, wget, yq, zip, zstd for developer ease-of-life
# - gzip, make, tar, unzip, wget, zip, zstd for developer ease-of-life
# - Azure CLI system requirements (Python 3.11, plus C/Rust build tools for libs non pre-built on this platform)
RUN rm -f /etc/apt/apt.conf.d/docker-clean \
&& echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
Expand Down Expand Up @@ -109,7 +109,7 @@ RUN python3 -m pip \
# Install AWS CLI, then verify installation
ARG AWS_CLI_VERSION
ENV AWS_CLI_VERSION ${AWS_CLI_VERSION}
RUN curl -LsSf --retry 8 --retry-all-errors https://awscli.amazonaws.com/awscli-exe-linux-$(ARCH_X64=x86_64 ARCH_ARM64=aarch64 bash arch.sh).zip -o awscli.zip \
RUN curl -LsSf --retry 8 --retry-all-errors https://awscli.amazonaws.com/awscli-exe-linux-$(ARCH_X64=x86_64 ARCH_ARM64=aarch64 bash arch.sh)-${AWS_CLI_VERSION}.zip -o awscli.zip \
&& unzip -q awscli.zip \
&& ./aws/install \
&& rm -rf awscli.zip aws \
Expand Down
4 changes: 2 additions & 2 deletions src/docker/Dockerfile-bullseye
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ ENV PYTHONDONTWRITEBYTECODE 1
# - Azure Pipelines agent system requirements
# - zsh, for inter-operability
# - dbus-user-session, fuse-overlayfs, iptables, for BuildKit
# - gzip, make, tar, unzip, wget, yq, zip, zstd for developer ease-of-life
# - gzip, make, tar, unzip, wget, zip, zstd for developer ease-of-life
# - Azure CLI system requirements (Python 3.9, plus C/Rust build tools for libs non pre-built on this platform)
RUN rm -f /etc/apt/apt.conf.d/docker-clean \
&& echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
Expand Down Expand Up @@ -106,7 +106,7 @@ RUN python3 -m pip \
# Install AWS CLI, then verify installation
ARG AWS_CLI_VERSION
ENV AWS_CLI_VERSION ${AWS_CLI_VERSION}
RUN curl -LsSf --retry 8 --retry-all-errors https://awscli.amazonaws.com/awscli-exe-linux-$(ARCH_X64=x86_64 ARCH_ARM64=aarch64 bash arch.sh).zip -o awscli.zip \
RUN curl -LsSf --retry 8 --retry-all-errors https://awscli.amazonaws.com/awscli-exe-linux-$(ARCH_X64=x86_64 ARCH_ARM64=aarch64 bash arch.sh)-${AWS_CLI_VERSION}.zip -o awscli.zip \
&& unzip -q awscli.zip \
&& ./aws/install \
&& rm -rf awscli.zip aws \
Expand Down
4 changes: 2 additions & 2 deletions src/docker/Dockerfile-focal
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ ENV PYTHONDONTWRITEBYTECODE 1
# - Azure Pipelines agent system requirements
# - zsh, for inter-operability
# - dbus-user-session, iptables, uidmap, for BuildKit
# - gzip, make, tar, unzip, wget, yq, zip, zstd for developer ease-of-life
# - gzip, make, tar, unzip, wget, zip, zstd for developer ease-of-life
# - Azure CLI system requirements (Python 3.8, plus C/Rust build tools for libs non pre-built on this platform)
RUN rm -f /etc/apt/apt.conf.d/docker-clean \
&& echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
Expand Down Expand Up @@ -105,7 +105,7 @@ RUN python3 -m pip \
# Install AWS CLI, then verify installation
ARG AWS_CLI_VERSION
ENV AWS_CLI_VERSION ${AWS_CLI_VERSION}
RUN curl -LsSf --retry 8 https://awscli.amazonaws.com/awscli-exe-linux-$(ARCH_X64=x86_64 ARCH_ARM64=aarch64 bash arch.sh).zip -o awscli.zip \
RUN curl -LsSf --retry 8 https://awscli.amazonaws.com/awscli-exe-linux-$(ARCH_X64=x86_64 ARCH_ARM64=aarch64 bash arch.sh)-${AWS_CLI_VERSION}.zip -o awscli.zip \
&& unzip -q awscli.zip \
&& ./aws/install \
&& rm -rf awscli.zip aws \
Expand Down
4 changes: 2 additions & 2 deletions src/docker/Dockerfile-jammy
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ ENV PYTHONDONTWRITEBYTECODE 1
# - Azure Pipelines agent system requirements
# - zsh, for inter-operability
# - dbus-user-session, iptables, uidmap, for BuildKit
# - gzip, make, tar, unzip, wget, yq, zip, zstd for developer ease-of-life
# - gzip, make, tar, unzip, wget, zip, zstd for developer ease-of-life
# - Azure CLI system requirements (Python 3.10, plus C/Rust build tools for libs non pre-built on this platform)
RUN rm -f /etc/apt/apt.conf.d/docker-clean \
&& echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
Expand Down Expand Up @@ -104,7 +104,7 @@ RUN python3 -m pip \
# Install AWS CLI, then verify installation
ARG AWS_CLI_VERSION
ENV AWS_CLI_VERSION ${AWS_CLI_VERSION}
RUN curl -LsSf --retry 8 --retry-all-errors https://awscli.amazonaws.com/awscli-exe-linux-$(ARCH_X64=x86_64 ARCH_ARM64=aarch64 bash arch.sh).zip -o awscli.zip \
RUN curl -LsSf --retry 8 --retry-all-errors https://awscli.amazonaws.com/awscli-exe-linux-$(ARCH_X64=x86_64 ARCH_ARM64=aarch64 bash arch.sh)-${AWS_CLI_VERSION}.zip -o awscli.zip \
&& unzip -q awscli.zip \
&& ./aws/install \
&& rm -rf awscli.zip aws \
Expand Down
Loading

0 comments on commit d4f256c

Please sign in to comment.