Add daily releases to quay.io repository

See #73.
This commit is contained in:
Justin Kromlinger 2023-06-14 14:43:34 +02:00
parent de5fe5cbe7
commit 9df81a9cbf
No known key found for this signature in database
GPG Key ID: 69EF6D9E49A64EB8
2 changed files with 18 additions and 13 deletions

View File

@ -130,7 +130,9 @@ image:build:secure:
before_script: before_script:
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$GITLAB_PROJECT_USER\",\"password\":\"$GITLAB_PROJECT_TOKEN\"}}}" > /kaniko/.docker/config.json - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$GITLAB_PROJECT_USER\",\"password\":\"$GITLAB_PROJECT_TOKEN\"}}}" > /kaniko/.docker/config.json
# Build and publish to the Arch Linux group namespace: https://hub.docker.com/r/archlinux/archlinux # Build and publish to the Arch Linux group namespaces:
# https://hub.docker.com/r/archlinux/archlinux
# https://quay.io/repository/archlinux/archlinux
image:publish:secure: image:publish:secure:
extends: .image extends: .image
retry: 2 retry: 2
@ -142,19 +144,21 @@ image:publish:secure:
matrix: matrix:
- GROUP: [base, base-devel] - GROUP: [base, base-devel]
before_script: before_script:
- echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"username\":\"$DOCKERHUB_USERNAME\",\"password\":\"$DOCKERHUB_ACCESS_TOKEN\"}}}" > /kaniko/.docker/config.json - echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"username\":\"$DOCKERHUB_USERNAME\",\"password\":\"$DOCKERHUB_ACCESS_TOKEN\"}, \"quay.io\":{\"username\":\"$QUAY_USERNAME\",\"password\":\"$QUAY_PASSWORD\"}}}" > /kaniko/.docker/config.json
script: script:
- LATEST="" - LATEST=""
- if [[ "$GROUP" == "base" ]]; then - if [[ "$GROUP" == "base" ]]; then
LATEST="--destination archlinux/archlinux:latest"; LATEST="--destination docker.io/archlinux/archlinux:latest --destination quay.io/archlinux/archlinux:latest";
fi fi
- /kaniko/executor - /kaniko/executor
--force --force
--ignore-var-run="false" --ignore-var-run="false"
--context $CI_PROJECT_DIR --context $CI_PROJECT_DIR
--dockerfile $CI_PROJECT_DIR/Dockerfile.$GROUP --dockerfile $CI_PROJECT_DIR/Dockerfile.$GROUP
--destination archlinux/archlinux:$GROUP --destination docker.io/archlinux/archlinux:$GROUP
--destination archlinux/archlinux:$GROUP-$BUILD_VERSION --destination docker.io/archlinux/archlinux:$GROUP-$BUILD_VERSION
--destination quay.io/archlinux/archlinux:$GROUP
--destination quay.io/archlinux/archlinux:$GROUP-$BUILD_VERSION
$LATEST $LATEST
.test: .test:

View File

@ -1,10 +1,11 @@
# Arch Linux Docker Image # Arch Linux OCI Images
[![pipeline status](https://gitlab.archlinux.org/archlinux/archlinux-docker/badges/master/pipeline.svg)](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/commits/master) [![pipeline status](https://gitlab.archlinux.org/archlinux/archlinux-docker/badges/master/pipeline.svg)](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/commits/master)
Arch Linux provides Docker images both in the [official DockerHub library](https://hub.docker.com/_/archlinux) (`docker pull library/archlinux:latest`) and in our [own repository](https://hub.docker.com/r/archlinux/archlinux) (`docker pull archlinux/archlinux:latest`). Arch Linux provides OCI-Compliant container images in multiple repositories:
* [Weekly in the official DockerHub library](https://hub.docker.com/_/archlinux): `podman pull docker.io/archlinux/archlinux:latest` or `docker pull archlinux/archlinux:latest`
Images in the official library are updated weekly while our own repository is updated daily. * [Daily in our DockerHub repository](https://hub.docker.com/r/archlinux/archlinux): `podman pull docker.io/archlinux/archlinux:latest` or `docker pull archlinux/archlinux:latest`
* [Daily in our Quay.io repository](https://quay.io/repository/archlinux/archlinux): `podman pull quay.io/archlinux/archlinux:latest` or `docker pull quay.io/archlinux/archlinux:latest`
Two versions of the image are provided: `base` (approx. 150 MiB) and `base-devel` (approx. 260 MiB), containing the respective meta package / package group. Both are available as tags with `latest` pointing to `base`. Additionally, images are tagged with their date and build job number, f.e. `base-devel-20201118.0.9436`. Two versions of the image are provided: `base` (approx. 150 MiB) and `base-devel` (approx. 260 MiB), containing the respective meta package / package group. Both are available as tags with `latest` pointing to `base`. Additionally, images are tagged with their date and build job number, f.e. `base-devel-20201118.0.9436`.
@ -27,7 +28,7 @@ While the images are regularly kept up to date it is strongly recommended runnin
## Building your own image ## Building your own image
[This repository](https://gitlab.archlinux.org/archlinux/archlinux-docker) contains all scripts and files needed to create a Docker image for Arch Linux. [This repository](https://gitlab.archlinux.org/archlinux/archlinux-docker) contains all scripts and files needed to create an OCI image for Arch Linux.
### Dependencies ### Dependencies
Install the following Arch Linux packages: Install the following Arch Linux packages:
@ -47,9 +48,9 @@ build the image `archlinux:base-devel` which additionally has the `base-devel` g
## Pipeline ## Pipeline
### Daily builds ### Daily releases
Daily images are build with scheduled [GitLab CI](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/blob/master/.gitlab-ci.yml) using our own runner infrastructure. Initially root filesystem archives are constructed and provided in our [package registry](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/packages). The released multi-stage Dockerfile downloads those archives and verifies their integrity before unpacking it into a Docker image layer. Images are built using [kaniko](https://github.com/GoogleContainerTools/kaniko) to avoid using privileged Docker containers, which also publishes them to our DockerHub repository. Daily images are build with scheduled [GitLab CI](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/blob/master/.gitlab-ci.yml) using our own runner infrastructure. Initially root filesystem archives are constructed and provided in our [package registry](https://gitlab.archlinux.org/archlinux/archlinux-docker/-/packages). The released multi-stage Dockerfile downloads those archives and verifies their integrity before unpacking it into a OCI image layer. Images are built using [kaniko](https://github.com/GoogleContainerTools/kaniko) to avoid using privileged Docker containers, which also publishes them to our external repositories.
### Weekly releases ### Weekly releases