From ed9fe0f432c30fce74c362fd47ed576c0bc93fdf Mon Sep 17 00:00:00 2001 From: FollieHiyuki Date: Sun, 9 Jan 2022 00:13:56 +0700 Subject: [PATCH] Add aports container image --- additional/container_images/aports/Dockerfile | 35 +++++++++++++++++++ additional/containers.yml | 10 ++++++ additional/packages.yml | 3 +- roles/scripts/files/bin/alpine-chroot | 19 ---------- 4 files changed, 47 insertions(+), 20 deletions(-) create mode 100644 additional/container_images/aports/Dockerfile create mode 100644 additional/containers.yml delete mode 100755 roles/scripts/files/bin/alpine-chroot diff --git a/additional/container_images/aports/Dockerfile b/additional/container_images/aports/Dockerfile new file mode 100644 index 0000000..cf7e54c --- /dev/null +++ b/additional/container_images/aports/Dockerfile @@ -0,0 +1,35 @@ +# https://wiki.alpinelinux.org/wiki/Creating_an_Alpine_package +# This image build an intermediated environment to build + test Alpine packages +# +# Usage: +# $ podman run --rm -it -v ~/packages:/home/kawaii/packages localhost/aports +# => doas chown kawaii:users ~/packages +FROM alpine:edge + +# Change repositories +RUN printf 'https://download.nus.edu.sg/mirror/alpine/edge/main\n\ +https://download.nus.edu.sg/mirror/alpine/edge/community\n\ +https://download.nus.edu.sg/mirror/alpine/edge/testing\n' > /etc/apk/repositories + +RUN apk add --no-cache alpine-sdk doas vim \ + && mkdir -p /var/cache/distfiles \ + && chgrp abuild /var/cache/distfiles \ + && chmod g+x /var/cache/distfiles + +# Create a normal user +RUN echo 'permit nopass :wheel' > /etc/doas.d/doas.conf \ + && chmod 600 /etc/doas.d/doas.conf \ + && printf 'cuteuser\ncuteuser\n' | adduser -h /home/kawaii -s /bin/ash -G wheel kawaii \ + && adduser kawaii abuild + +# abuild only works as normal user +USER kawaii +WORKDIR /home/kawaii + +# Tell abuild-keygen to use doas +ENV SUDO=doas + +RUN git clone --depth 1 https://gitlab.alpinelinux.org/alpine/aports.git \ + && printf "\n" | abuild-keygen -a -i + +CMD ["/bin/ash"] diff --git a/additional/containers.yml b/additional/containers.yml new file mode 100644 index 0000000..f3650a7 --- /dev/null +++ b/additional/containers.yml @@ -0,0 +1,10 @@ +--- +- name: Build OCI images for personal usage + hosts: all + gather_facts: yes + tasks: + - name: aports | Build the container image + tags: aports + podman_image: + name: aports + path: container_images/aports diff --git a/additional/packages.yml b/additional/packages.yml index e28dc23..c0ca02f 100644 --- a/additional/packages.yml +++ b/additional/packages.yml @@ -1,6 +1,7 @@ --- # 'ansible', 'doas' and 1 ssh client are probably already installed -- hosts: all +- name: Install packages + hosts: all gather_facts: yes tasks: - block: diff --git a/roles/scripts/files/bin/alpine-chroot b/roles/scripts/files/bin/alpine-chroot deleted file mode 100755 index 11d4a3b..0000000 --- a/roles/scripts/files/bin/alpine-chroot +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# Super stupid and lazy way to chroot - -chroot_dir="$HOME/Alpine-chroot" - -# Pre -doas mount -o bind /dev ${chroot_dir}/dev -doas mount -t proc none ${chroot_dir}/proc -doas mount -o bind /sys ${chroot_dir}/sys -doas cp -L /etc/resolv.conf ${chroot_dir}/etc/ - -# chroot -doas chroot ${chroot_dir} /bin/ash -l - -# Post -doas umount -l ${chroot_dir}/dev -doas umount -l ${chroot_dir}/proc -doas umount -l ${chroot_dir}/sys