Skip to content

Commit

Permalink
Merge pull request #95 from travier/fedora
Browse files Browse the repository at this point in the history
  • Loading branch information
travier authored Oct 20, 2023
2 parents 283060c + a55bb65 commit 9e95d43
Show file tree
Hide file tree
Showing 14 changed files with 496 additions and 0 deletions.
43 changes: 43 additions & 0 deletions .github/workflows/fedora-pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: "fedora: Build toolbx images for PRs"

permissions: read-all

on:
pull_request:
branches:
- main
paths:
- fedora/**
- .github/workflows/fedora-pr.yaml

env:
distro: 'fedora'
distro_pretty: 'fedora'
latest_release: 'f38'

jobs:
build-images:
strategy:
matrix:
release: ['f37', 'f38', 'f39']

runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build ${{ env.distro_pretty }} ${{ matrix.release }} toolbox image
uses: docker/build-push-action@v3
with:
context: ${{ env.distro }}/${{ matrix.release }}
file: ${{ env.distro }}/${{ matrix.release }}/Containerfile
platforms: linux/amd64,linux/arm64
push: false
no-cache: true
tags: quay.io/toolbx-images/${{ env.distro }}-toolbox:${{ matrix.release }}
65 changes: 65 additions & 0 deletions .github/workflows/fedora.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: "fedora: Build and push toolbx images"

permissions: read-all

on:
push:
branches:
- main
paths:
- fedora/**
- .github/workflows/fedora.yaml
schedule:
- cron: '0 0 * * MON'

# Prevent multiple workflow runs from racing
concurrency: ${{ github.workflow }}

env:
distro: 'fedora'
distro_pretty: 'fedora'
latest_release: 'f38'

jobs:
build-and-push-images:
strategy:
matrix:
release: ['f37', 'f38', 'f39']

runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to Quay.io
uses: docker/login-action@v2
with:
registry: quay.io
username: 'toolbx-images+github'
password: ${{ secrets.QUAY_ROBOT_TOKEN }}

- name: Build and push ${{ env.distro_pretty }} ${{ matrix.release }} toolbox image
uses: docker/build-push-action@v3
with:
context: ${{ env.distro }}/${{ matrix.release }}
file: ${{ env.distro }}/${{ matrix.release }}/Containerfile
platforms: linux/amd64,linux/arm64
push: true
no-cache: true
tags: quay.io/toolbx-images/${{ env.distro }}-toolbox:${{ matrix.release }}

- name: Push latest tag
if: env.latest_release == matrix.release
uses: docker/build-push-action@v3
with:
context: ${{ env.distro }}/${{ matrix.release }}
file: ${{ env.distro }}/${{ matrix.release }}/Containerfile
platforms: linux/amd64,linux/arm64
push: true
tags: quay.io/toolbx-images/${{ env.distro }}-toolbox:latest
37 changes: 37 additions & 0 deletions fedora/f37/Containerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
FROM registry.fedoraproject.org/fedora:37

ARG NAME=fedora-toolbox
ARG VERSION=37
LABEL com.github.containers.toolbox="true" \
com.redhat.component="$NAME" \
name="$NAME" \
version="$VERSION" \
usage="This image is meant to be used with the toolbox command" \
summary="Base image for creating Fedora toolbox containers" \
maintainer="Debarshi Ray <[email protected]>"

RUN rm /etc/rpm/macros.image-language-conf
RUN sed -i '/tsflags=nodocs/d' /etc/dnf/dnf.conf

COPY missing-docs extra-packages ensure-files /

RUN dnf -y upgrade && \
dnf -y swap coreutils-single coreutils-full && \
dnf -y swap glibc-minimal-langpack glibc-all-langpacks && \
dnf -y reinstall $(<missing-docs) && \
dnf -y install $(<extra-packages) && \
dnf clean all

RUN ret_val=0; \
while read file; do \
if ! compgen -G "$file" >/dev/null; then \
echo "$file: No such file or directory" >&2; \
ret_val=1; \
break; \
fi; \
done <ensure-files; \
if [ "$ret_val" -ne 0 ]; then \
false; \
fi

RUN rm /missing-docs /extra-packages /ensure-files
25 changes: 25 additions & 0 deletions fedora/f37/ensure-files
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/usr/share/man/man1/bash.1*
/usr/share/man/man1/cd.1*
/usr/share/man/man1/export.1*

/usr/share/man/man1/cat.1*
/usr/share/man/man1/cp.1*
/usr/share/man/man1/ls.1*

/usr/share/man/man1/gpg2.1*
/usr/share/man/man7/gnupg2.7*

/usr/share/man/fr/man8/rpm.8*
/usr/share/man/ja/man8/rpm.8*
/usr/share/man/man8/rpm.8*

/usr/share/man/man1/cal.1.*
/usr/share/man/man1/getopt.1*
/usr/share/man/man1/hexdump.1*

/usr/share/man/man1/kill.1*
/usr/share/man/man8/mount.8*

/usr/share/man/fr/man1/xz.1*
/usr/share/man/ko/man1/xz.1*
/usr/share/man/man1/xz.1*
48 changes: 48 additions & 0 deletions fedora/f37/extra-packages
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
bash-completion
bc
bzip2
diffutils
dnf-plugins-core
findutils
flatpak-spawn
fpaste
git
gnupg2
gnupg2-smime
gvfs-client
hostname
iproute
iputils
keyutils
krb5-libs
less
lsof
man-db
man-pages
mesa-dri-drivers
mesa-vulkan-drivers
mtr
nano-default-editor
nss-mdns
openssh-clients
passwd
pigz
procps-ng
rsync
shadow-utils
sudo
tcpdump
time
traceroute
tree
unzip
util-linux
vte-profile
vulkan-loader
wget
which
whois
words
xorg-x11-xauth
xz
zip
20 changes: 20 additions & 0 deletions fedora/f37/missing-docs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
acl
bash
coreutils-common
curl
findutils
gawk
gnupg2
grep
gzip
libcap
openssl
p11-kit
pam
python3
rpm
sed
sudo
systemd
tar
util-linux-core
37 changes: 37 additions & 0 deletions fedora/f38/Containerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
FROM registry.fedoraproject.org/fedora:38

ARG NAME=fedora-toolbox
ARG VERSION=38
LABEL com.github.containers.toolbox="true" \
com.redhat.component="$NAME" \
name="$NAME" \
version="$VERSION" \
usage="This image is meant to be used with the toolbox command" \
summary="Base image for creating Fedora toolbox containers" \
maintainer="Debarshi Ray <[email protected]>"

RUN rm /etc/rpm/macros.image-language-conf
RUN sed -i '/tsflags=nodocs/d' /etc/dnf/dnf.conf

COPY missing-docs extra-packages ensure-files /

RUN dnf -y upgrade && \
dnf -y swap coreutils-single coreutils-full && \
dnf -y swap glibc-minimal-langpack glibc-all-langpacks && \
dnf -y reinstall $(<missing-docs) && \
dnf -y install $(<extra-packages) && \
dnf clean all

RUN ret_val=0; \
while read file; do \
if ! compgen -G "$file" >/dev/null; then \
echo "$file: No such file or directory" >&2; \
ret_val=1; \
break; \
fi; \
done <ensure-files; \
if [ "$ret_val" -ne 0 ]; then \
false; \
fi

RUN rm /missing-docs /extra-packages /ensure-files
25 changes: 25 additions & 0 deletions fedora/f38/ensure-files
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/usr/share/man/man1/bash.1*
/usr/share/man/man1/cd.1*
/usr/share/man/man1/export.1*

/usr/share/man/man1/cat.1*
/usr/share/man/man1/cp.1*
/usr/share/man/man1/ls.1*

/usr/share/man/man1/gpg2.1*
/usr/share/man/man7/gnupg2.7*

/usr/share/man/fr/man8/rpm.8*
/usr/share/man/ja/man8/rpm.8*
/usr/share/man/man8/rpm.8*

/usr/share/man/man1/cal.1.*
/usr/share/man/man1/getopt.1*
/usr/share/man/man1/hexdump.1*

/usr/share/man/man1/kill.1*
/usr/share/man/man8/mount.8*

/usr/share/man/fr/man1/xz.1*
/usr/share/man/ko/man1/xz.1*
/usr/share/man/man1/xz.1*
48 changes: 48 additions & 0 deletions fedora/f38/extra-packages
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
bash-completion
bc
bzip2
diffutils
dnf-plugins-core
findutils
flatpak-spawn
fpaste
git
gnupg2
gnupg2-smime
gvfs-client
hostname
iproute
iputils
keyutils
krb5-libs
less
lsof
man-db
man-pages
mesa-dri-drivers
mesa-vulkan-drivers
mtr
nano-default-editor
nss-mdns
openssh-clients
passwd
pigz
procps-ng
rsync
shadow-utils
sudo
tcpdump
time
traceroute
tree
unzip
util-linux
vte-profile
vulkan-loader
wget
which
whois
words
xorg-x11-xauth
xz
zip
20 changes: 20 additions & 0 deletions fedora/f38/missing-docs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
acl
bash
coreutils-common
curl
findutils
gawk
gnupg2
grep
gzip
libcap
openssl
p11-kit
pam
python3
rpm
sed
sudo
systemd
tar
util-linux-core
Loading

0 comments on commit 9e95d43

Please sign in to comment.