Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
16 changes: 14 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changelog

## Unreleased

## Added

Set `ENV PIP_BREAK_SYSTEM_PACKAGES=1` within the Dockerfile to enable system-wide Python package installations by default, bypassing the externally-managed-environment error (PEP 668). This removes the need to explicitly use --break-system-packages or initialize a virtual environment for global pip installs during the image build process.

## Updated

Kubectl: from v1.33.0 to v1.33.1
Google Cloud CLI (gcloud): from 519.0.0 to 525.0.0
AWS CLI: from 2.27.1 to 2.27.32
Azure CLI: from 2.71.0 to 2.74.0
Scalr CLI: from 0.17.0 to 0.17.1

## [0.1.2](https://github.com/Scalr/runner/tree/0.1.2) (2025-05-07)

[Full Changelog](https://github.com/Scalr/runner/compare/0.1.1...0.1.2)
Expand All @@ -16,6 +30,4 @@

- SCALRCORE-34486 \> Basic Repository Setup [\#1](https://github.com/Scalr/runner/pull/1) ([artemvang](https://github.com/artemvang))



\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
4 changes: 4 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ RUN <<EOT
find /usr -name __pycache__ -type d -exec rm -rf {} +
EOT

# This effectively makes `pip install --break-system-packages ...` the default, allowing
# to install packages system-wide without needing to initialize a virtual environment.
ENV PIP_BREAK_SYSTEM_PACKAGES=1

# Kubectl
ARG KUBECTL_VERSION
LABEL kubectl.version=${KUBECTL_VERSION}
Expand Down
53 changes: 35 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,49 @@
# Runner Image used in Scalr Remote Backend.
# Runner Image used in Scalr Remote Backend

This is the Git repo of the official runner image.

The image is based on the [`debian:bookworm-slim`](https://hub.docker.com/_/debian),
The image is based on the [`debian:trixie-slim`](https://hub.docker.com/_/debian),
and contains the following software:

* Archivators - zip, tar, gzip
* Encryption - gnupg
* Git (2.39.5) - core, LFS, ssh/http transports
* HTTP clients - curl, wget, ca-certificates
* JSON - jq
* Python (3.11.2)
* Cloud clients (see [versions](./versions)):
* AWS CLI
* Azure CLI
* GCloud - Stable, Alpha, and Beta components. Kubectl authenticator
* Kubectl (latest version)
* Scalr CLI
## Included Tools

This environment comes pre-equipped with a comprehensive suite of tools essential for development, operations, and cloud interactions. Here's a breakdown of what's included:

* **Archivators**:
* zip - Create and extract ZIP archives
* tar - Manipulate tar archives
* gzip - Compress and decompress `.gz` files
* **Encryption**:
* gnupg - Secure data encryption and signing
* **Git (v2.47.2)**:
* Core Git functionality
* Git LFS (Large File Storage)
* SSH and HTTP transport protocols
* **HTTP Clients**:
* curl - Data transfer with URLs
* wget - File downloads from the web
* ca-certificates - Trusted CA certificates
* **Programming Languages**
* Python ([v3.13.3](https://www.python.org/downloads/release/python-3133/)) - General-purpose programming language (release)
* jq - Command-line JSON processor
* **Cloud Clients**
* AWS CLI ([2.27.1](https://github.com/aws/aws-cli/releases/tag/2.27.32)) - Amazon Web Services CLI.
* Azure CLI ([2.71.0](https://github.com/Azure/azure-cli/releases/tag/azure-cli-2.74.0)) - Microsoft Azure CLI.
* Google Cloud SDK ([525.0.0](https://cloud.google.com/sdk/docs/release-notes#52500_2025-06-03)) - Stable, Alpha, Beta components. Includes kubectl authenticator.
* Kubectl ([0.33.1](https://github.com/kubernetes/kubectl/releases/tag/v0.33.1)) - Kubernetes CLI.
* Scalr CLI ([0.17.1](https://github.com/Scalr/scalr-cli/releases/tag/v0.17.1)) - The command-line to communicate with the Scalr API.

The versions for Cloud Clients, Kubectl, and Scalr CLI are specifically pinned and detailed in the [versions](./versions) file. All other software included in this environment is sourced directly from the Debian Trixie upstream repositories.

## Runner Image Building

```bash
docker buildx build \
--build-arg KUBECTL_VERSION=v1.33.0 \
--build-arg GCLOUD_VERSION=519.0.0 \
--build-arg KUBECTL_VERSION=v1.33.1 \
--build-arg GCLOUD_VERSION=525.0.0 \
--build-arg AWS_CLI_VERSION=2.27.1 \
--build-arg AZURE_CLI_VERSION=2.71.0 \
--build-arg SCALR_CLI_VERSION=0.17.0 \
--build-arg SCALR_CLI_VERSION=0.17.1 \
--platform linux/amd64 \
-t runner:latest --load .
```
```
10 changes: 5 additions & 5 deletions versions
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
kubectl=v1.33.0
gcloud=519.0.0
aws_cli=2.27.1
azure_cli=2.71.0
scalr_cli=0.17.0
kubectl=v1.33.1
gcloud=525.0.0
aws_cli=2.27.32
azure_cli=2.74.0
scalr_cli=0.17.1