From ca0851418e7136f9f7abfda3909001e147b1739f Mon Sep 17 00:00:00 2001 From: Pablo Castellano Date: Thu, 17 Feb 2022 18:05:22 +0100 Subject: [PATCH] chore: use docker multi-stage builds Previous image was 7.69GB which is somewhat heavy. Now the resulting image is 1.20GB thanks to multi-stage builds. --- frontend/scripts/docker-buildfiles/Dockerfile | 25 +++++++++++++++++-- .../docker-buildfiles/docker-compose.yml | 1 + 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/frontend/scripts/docker-buildfiles/Dockerfile b/frontend/scripts/docker-buildfiles/Dockerfile index cf05376a70..1c51bf02c1 100644 --- a/frontend/scripts/docker-buildfiles/Dockerfile +++ b/frontend/scripts/docker-buildfiles/Dockerfile @@ -1,4 +1,4 @@ -FROM archlinux/archlinux:base-devel +FROM archlinux/archlinux:base-devel as builder RUN pacman -Syy @@ -36,4 +36,25 @@ cargo install --force cargo-make && \ cargo install --force duckscript_cli && \ cargo make flowy_dev && \ cargo make -p production-linux-x86 appflowy-linux -CMD ["appflowy/frontend/app_flowy/product/0.0.3/linux/Release/AppFlowy/app_flowy"] + +CMD ["/home/makepkg/appflowy/frontend/app_flowy/build/linux/x64/release/bundle/app_flowy"] + +################# +FROM archlinux/archlinux:base-devel + +RUN pacman -Syy +RUN pacman -Syu --needed --noconfirm xdg-user-dirs +RUN xdg-user-dirs-update + +ARG user=makepkg +RUN useradd --system --create-home $user \ + && echo "$user ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers.d/$user +USER $user +WORKDIR /home/$user + +COPY --from=builder /usr/sbin/yay /usr/sbin/yay +RUN yay -S --noconfirm gtk3 + +COPY --from=builder /home/makepkg/appflowy/frontend/app_flowy/build/linux/x64/release/bundle ./AppFlowy + +CMD ["/home/makepkg/AppFlowy/app_flowy"] diff --git a/frontend/scripts/docker-buildfiles/docker-compose.yml b/frontend/scripts/docker-buildfiles/docker-compose.yml index d9f38082df..581a1232e9 100644 --- a/frontend/scripts/docker-buildfiles/docker-compose.yml +++ b/frontend/scripts/docker-buildfiles/docker-compose.yml @@ -3,6 +3,7 @@ version: "3" services: app: build: . + image: appflowy/appflowy:latest stdin_open: true # tty: true environment: