From eeb522b46be135e6189ffba1dad10415f5db1402 Mon Sep 17 00:00:00 2001 From: Caleb Maclennan Date: Tue, 18 Feb 2020 16:07:28 +0300 Subject: [PATCH] refactor(docker): Build docker using prebuilt dependencies --- Dockerfile | 17 ++++++++++++----- Makefile.am | 2 +- build-aux/docker-yay-runner.sh | 20 -------------------- 3 files changed, 13 insertions(+), 26 deletions(-) delete mode 100755 build-aux/docker-yay-runner.sh diff --git a/Dockerfile b/Dockerfile index 6190decb7..6939bc5cd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,19 @@ ARG sile_tag=master FROM archlinux AS sile-base -RUN pacman --needed --noconfirm -Syyuq && yes | pacman -Sccq +# Setup Alerque's hosted Arch repository with prebuilt dependencies +RUN pacman-key --init && pacman-key --populate +RUN sed -i -e '/^.community/{n;n;s!^!\n\[alerque\]\nServer = https://arch.alerque.com/$arch\n!}' /etc/pacman.conf +RUN pacman-key --recv-keys 63CC496475267693 && pacman-key --lsign-key 63CC496475267693 -COPY build-aux/docker-yay-runner.sh /usr/local/bin -RUN docker-yay-runner.sh "--noconfirm --asexplicit -Sq fontconfig harfbuzz icu lua lua-{cassowary,cosmo,cliargs,expat,filesystem,linenoise,lpeg,luaepnf,penlight,repl,sec,socket,stdlib,vstruct,zlib} ttf-gentium-plus" +RUN pacman --needed --noconfirm -Syuq && yes | pacman -Sccq + +# Installing and removing pre-packaged sile bootstraps the system dependencies +RUN pacman --needed --noconfirm -Syq sile && yes | pacman -Sccq && pacman --noconfirm -Rq sile FROM sile-base AS sile-builder -RUN pacman --needed --noconfirm -Syyuq && pacman --needed --noconfirm -Sq git base-devel poppler && yes | pacman -Sccq +RUN pacman --needed --noconfirm -Syq git base-devel poppler COPY ./ /src WORKDIR /src @@ -19,7 +24,9 @@ RUN git clean -dxf ||: RUN git fetch --unshallow ||: RUN git fetch --tags ||: -RUN ./bootstrap.sh && ./configure --with-system-luarocks && make +RUN ./bootstrap.sh +RUN ./configure --with-system-luarocks +RUN make RUN make install DESTDIR=/pkgdir FROM sile-base AS sile diff --git a/Makefile.am b/Makefile.am index 6208cacd6..4af26f2f1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -327,7 +327,7 @@ endif CLEANFILES = $(bin_SCRIPTS) $(dist_man_MANS) $(DEPFILES) $(ACTUALS) $(TESTPDFS) .PHONY: docker -docker: Dockerfile build-aux/docker-entrypoint.sh build-aux/docker-yay-runner.sh +docker: Dockerfile build-aux/docker-entrypoint.sh docker build --tag siletypesetter/sile:HEAD ./ gource.webm: diff --git a/build-aux/docker-yay-runner.sh b/build-aux/docker-yay-runner.sh deleted file mode 100755 index d65df12d7..000000000 --- a/build-aux/docker-yay-runner.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -set -e +o pipefail - -# Setup AUR helper -pacman --needed --noconfirm -Syyuq -pacman --needed --noconfirm --asdeps -Sq git base-devel go -useradd -m docker -echo 'docker:' | chpasswd -e -mkdir -p /etc/sudoers.d -echo 'docker ALL = NOPASSWD: ALL' > /etc/sudoers.d/99-docker -su docker -c 'cd; git clone https://aur.archlinux.org/yay.git; cd yay; makepkg -i --noconfirm --asdeps' - -# Run -su docker -c "yay $@" - -# Teardeawn -su docker -c 'yay --noconfirm -Yccq' -yes | pacman -Sccq -userdel -r -f docker -rm -rf /etc/sudoers.d