From 7227a52f104d123404664181fb0de8172c2cdc57 Mon Sep 17 00:00:00 2001 From: Solene Rapenne Date: Sat, 4 Mar 2023 21:27:27 +0100 Subject: [PATCH] init --- Dockerfile | 6 ++++++ README.md | 1 + entrypoint.sh | 20 ++++++++++++++++++++ sync.sh | 18 ++++++++++++++++++ world | 41 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 86 insertions(+) create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 entrypoint.sh create mode 100755 sync.sh create mode 100644 world diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5dc4197 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +FROM gentoo/stage3:systemd + +ADD ./entrypoint.sh / +ADD ./world /var/lib/portage/world + +CMD [ "bash" , "./entrypoint.sh" ] diff --git a/README.md b/README.md new file mode 100644 index 0000000..d2820d0 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +This repository is an example showing how to use a Gentoo docker image to build packages on a remote server that is more powerful. diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..13a9ba6 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,20 @@ +#!/bin/sh +emerge --quiet-build sys-apps/merge-usr +merge-usr + +eselect profile set default/linux/amd64/17.1/desktop/systemd/merged-usr + +echo 'MAKEOPTS="-j12"' >> /etc/portage/make.conf + +USE=-pulseaudio emerge -v media-sound/mpg123 + +emerge -v rust-bin + +emerge -v gentoo-sources +eselect kernel set 1 + +env FEATURES="-ipc-sandbox -pid-sandbox -sandbox -usersandbox -network-sandbox" \ + emerge --deep --update --newuse --changed-use \ + --with-bdeps=y --usepkg --buildpkg \ + -j 2 -l 12 \ + --quiet-build @world diff --git a/sync.sh b/sync.sh new file mode 100755 index 0000000..a2d1fc9 --- /dev/null +++ b/sync.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +MACHINE=netbook + +rsync -av Dockerfile 10.42.42.101:dev/gentoo_${MACHINE}/ +rsync -av entrypoint.sh 10.42.42.101:dev/gentoo_${MACHINE}/ +rsync -av /var/cache/binpkgs 10.42.42.101:dev/gentoo_${MACHINE}/ +rsync -av --delete /etc/portage 10.42.42.101:dev/gentoo_${MACHINE}/ +rsync -av --delete /var/db/repos 10.42.42.101:dev/gentoo_${MACHINE}/ +cp /var/lib/portage/world . +rsync -av world 10.42.42.101:dev/gentoo_${MACHINE}/ + +ssh 10.42.42.101 "docker image rm -f gentoo/build" +ssh 10.42.42.101 "cd dev/gentoo_${MACHINE} && docker build -t gentoo/build ." +ssh 10.42.42.101 "cd dev/gentoo_${MACHINE} && docker run -v \$PWD/binpkgs:/var/cache/binpkgs -v \$PWD/portage:/etc/portage -v \$PWD/repos:/var/db/repos gentoo/build" + +# requires local root to have access to remote user +echo sudo rsync -av 10.42.42.101:/home/solene/dev/gentoo_${MACHINE}/binpkgs/ /var/cache/binpkgs/ diff --git a/world b/world new file mode 100644 index 0000000..908200c --- /dev/null +++ b/world @@ -0,0 +1,41 @@ +app-admin/eclean-kernel +app-admin/sudo +app-arch/unzip +app-arch/zip +app-editors/kakoune +app-editors/nano +app-misc/resolve-march-native +app-misc/tmux +app-portage/cpuid2cpuflags +app-portage/emlop +app-portage/genlop +app-portage/gentoolkit +app-shells/fish +app-shells/fzf +dev-libs/atk +dev-util/ccache +dev-util/wayland-scanner +gnome-base/gnome-light +gnome-extra/gnome-software +media-fonts/font-alias +media-libs/libva-intel-driver +media-sound/alsa-utils +media-sound/mpg123 +net-fs/nfs-utils +net-misc/dhcpcd +net-misc/networkmanager +net-wireless/wireless-tools +net-wireless/wpa_supplicant +sys-apps/fd +sys-apps/flatpak +sys-apps/merge-usr +sys-boot/grub +sys-firmware/alsa-firmware +sys-fs/ncdu +sys-kernel/gentoo-kernel-bin +sys-kernel/linux-firmware +sys-libs/libutempter +virtual/jpeg +www-client/firefox-bin +x11-apps/setxkbmap +x11-base/xorg-server