Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Import Fedora images #95

Merged
merged 3 commits into from
Oct 20, 2023
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
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
Loading