Skip to content
Snippets Groups Projects
Commit 4a680fa8 authored by Jakub Ružička's avatar Jakub Ružička
Browse files

Merge branch 'lxc' into 'master'

LXC images with stable apkg

See merge request !134
parents afdcb64f bce8bb72
1 merge request!134LXC images with stable apkg
Pipeline #108116 failed with stages
in 14 minutes and 29 seconds
......@@ -458,7 +458,7 @@ make-archive-knot-dns:
<<: *knot-dns-base
artifacts:
paths:
- knot-dns/pkg/archives/dev
- knot-dns/pkg/
script:
- apt update
- *setup-project
......
# apkg LXC images
These are per-distro LXC images based on
[lxc-gitlab-runner](https://gitlab.nic.cz/labs/lxc-gitlab-runner) with
packaging deps and latest stable apkg installed.
Unlike native gitlab docker, LXC can run systemd and these images contain it
so you can
systemctl start foo
etc.
Use those images from your `Dockerfile`:
FROM registry.nic.cz/packaging/apkg/lxc/debian-11
## build image
use `build.sh` to build docker image, for example:
```
./build.sh debian-11
```
## push (upload) image into apkg CI
you need to **login** first:
```
$ docker login registry.nic.cz
```
then you can use `push.sh` script:
```
./push.sh debian-11
```
## build & push images
use `update.sh` wrapper to build and push multiple images
using `build.sh` and `push.sh` scripts described above:
```
./update.sh debian-10 debian-11 ubuntu-22.04
```
#!/bin/bash
# build specified docker image
IMAGE=$1
if [ -z "$IMAGE" ]; then
echo "usage: $0 IMAGE"
exit 1
fi
set -ex
docker build --no-cache -t "registry.nic.cz/packaging/apkg/lxc/$IMAGE" "$IMAGE"
FROM registry.nic.cz/labs/lxc-gitlab-runner/centos-7
WORKDIR /root
CMD ["/bin/bash"]
# overcome locale issues
RUN yum install -y glibc-common
RUN localedef -i en_US -f UTF-8 C.UTF-8
# upgrade system to latest
RUN yum upgrade -y
# enable EPEL
RUN yum install -y epel-release
# packaging deps
RUN yum install -y \
git \
rpm-build \
python3-setuptools \
python3-pip
# basic deps
RUN pip3 install \
beautifulsoup4 \
blessings \
cached-property \
click \
distro \
jinja2 \
packaging \
requests \
toml
# install stable apkg from PyPI
RUN python3 -m pip install apkg
RUN apkg --version
FROM registry.nic.cz/labs/lxc-gitlab-runner/debian-10
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /root
CMD ["/bin/bash"]
# upgrade system to latest
RUN apt-get update -qqq
RUN apt-get upgrade -y -qqq
# packaging deps
RUN apt-get install -y -qqq \
apt-utils \
build-essential \
curl \
debhelper \
dh-python \
dpkg-dev \
git \
python3-all \
python3-pip \
python3-setuptools
# apkg deps
RUN apt-get install -y -qqq \
python3-bs4 \
python3-blessings \
python3-click \
python3-distro \
python3-jinja2 \
python3-packaging \
python3-requests \
python3-toml
# install py deps unavailable from distro repos
RUN python3 -m pip install build
# install stable apkg from PyPI
RUN python3 -m pip install apkg
RUN apkg --version
FROM registry.nic.cz/labs/lxc-gitlab-runner/debian-11
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /root
CMD ["/bin/bash"]
# upgrade system to latest
RUN apt-get update -qqq
RUN apt-get upgrade -y -qqq
# packaging deps
RUN apt-get install -y -qqq \
apt-utils \
build-essential \
curl \
debhelper \
dh-python \
dpkg-dev \
git \
python3-all \
python3-pip \
python3-setuptools
# apkg deps
RUN apt-get install -y -qqq \
python3-bs4 \
python3-blessings \
python3-build \
python3-click \
python3-distro \
python3-jinja2 \
python3-packaging \
python3-requests \
python3-toml
# install stable apkg from PyPI
RUN python3 -m pip install apkg
RUN apkg --version
FROM registry.nic.cz/labs/lxc-gitlab-runner/fedora-36
WORKDIR /root
CMD ["/bin/bash"]
# upgrade system to latest
RUN dnf upgrade -y
# packaging deps
RUN dnf install -y \
git \
rpm-build \
python3-setuptools \
python3-pip
# basic deps
RUN dnf install -y \
python3-beautifulsoup4 \
python3-blessings \
python3-click \
python3-distro \
python3-jinja2 \
python3-packaging \
python3-requests \
python3-toml
# install stable apkg from PyPI
RUN python3 -m pip install apkg
RUN apkg --version
FROM registry.nic.cz/labs/lxc-gitlab-runner/opensuse-15.4
ENV LC_ALL=C.UTF-8
ENV PATH="~/.local/bin:${PATH}"
WORKDIR /root
CMD ["/bin/bash"]
SHELL ["/bin/bash", "-c"]
# packaging deps
RUN zypper install -y curl git rpm-build python3-pip python3-virtualenv
# basic deps
RUN zypper install -y python3-beautifulsoup4 python3-setuptools python3-Jinja2 python3-click python3-distro python3-blessings python3-requests python3-toml python3-cached-property
# systemd
RUN zypper install -y systemd
# install stable apkg from PyPI
RUN echo 'PATH="~/.local/bin:${PATH}"' >> ~/.bashrc
RUN python3 -m pip install pipx
RUN pipx install apkg
RUN apkg --version
#!/bin/bash
# upload docker image into apkg registry
IMAGE=$1
if [ -z "$IMAGE" ]; then
echo "usage: $0 IMAGE"
exit 1
fi
set -ex
docker push "registry.nic.cz/packaging/apkg/lxc/$IMAGE"
FROM registry.nic.cz/labs/lxc-gitlab-runner/rocky-8
ENV LC_ALL=C.UTF-8
WORKDIR /root
CMD ["/bin/bash"]
# upgrade system to latest
RUN dnf upgrade -y
# get dnf plugins
RUN dnf install -y dnf-plugins-core
# enable PowerTools
RUN dnf config-manager --set-enabled powertools
# enable EPEL
RUN dnf install -y epel-release
# update repos
RUN dnf update -y
# packaging deps
RUN dnf install -y \
git \
rpm-build \
python3-setuptools \
python3-pip
# basic deps
RUN pip3 install \
beautifulsoup4 \
blessings \
cached-property \
click \
distro \
jinja2 \
packaging \
requests \
toml
# install stable apkg from PyPI
RUN python3 -m pip install apkg
RUN apkg --version
FROM registry.nic.cz/labs/lxc-gitlab-runner/ubuntu-18.04
ENV DEBIAN_FRONTEND=noninteractive
ENV LC_ALL=C.UTF-8
WORKDIR /root
CMD ["/bin/bash"]
# upgrade system to latest
RUN apt-get update -qqq
RUN apt-get upgrade -y -qqq
# packaging deps
RUN apt-get install -y -qqq \
apt-utils \
build-essential \
curl \
debhelper \
dh-python \
dpkg-dev \
git \
python3-all \
python3-pip \
python3-setuptools
# apkg deps
RUN apt-get install -y -qqq \
python3-blessings \
python3-click \
python3-jinja2 \
python3-packaging \
python3-toml
# python deps not available\too old in distro
RUN pip3 install \
beautifulsoup4 \
build \
distro \
cached_property
# install stable apkg from PyPI
RUN python3 -m pip install apkg
RUN apkg --version
FROM registry.nic.cz/labs/lxc-gitlab-runner/ubuntu-20.04
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /root
CMD ["/bin/bash"]
# upgrade system to latest
RUN apt-get update -qqq
RUN apt-get upgrade -y -qqq
# packaging deps
RUN apt-get install -y -qqq \
apt-utils \
build-essential \
curl \
debhelper \
dh-python \
dpkg-dev \
git \
python3-all \
python3-pip \
python3-setuptools
# apkg deps
RUN apt-get install -y -qqq \
python3-bs4 \
python3-blessings \
python3-click \
python3-distro \
python3-jinja2 \
python3-packaging \
python3-requests \
python3-toml
# install stable apkg from PyPI
RUN python3 -m pip install apkg
RUN apkg --version
FROM registry.nic.cz/labs/lxc-gitlab-runner/ubuntu-22.04
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /root
CMD ["/bin/bash"]
# upgrade system to latest
RUN apt-get update -qqq
RUN apt-get upgrade -y -qqq
# packaging deps
RUN apt-get install -y -qqq \
apt-utils \
build-essential \
curl \
debhelper \
dh-python \
dpkg-dev \
git \
python3-all \
python3-pip \
python3-setuptools
# apkg deps
RUN apt-get install -y -qqq \
python3-bs4 \
python3-blessings \
python3-build \
python3-click \
python3-distro \
python3-jinja2 \
python3-packaging \
python3-requests \
python3-toml
# install stable apkg from PyPI
RUN python3 -m pip install apkg
RUN apkg --version
#!/bin/bash
# build and upload docker image(s) into apkg registry
#
# this is a simple wrapper around build.sh and update.sh
#
# to build & upload all images: ./update.sh */
if [[ $# -le 0 ]]; then
echo "usage: $0 IMAGE..."
exit 1
fi
set -e
for ARG in "$@"
do
IMAGE=${ARG%/}
echo "Building $IMAGE..."
./build.sh $IMAGE
echo "Pushing $IMAGE..."
./push.sh $IMAGE
done
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment