diff --git a/.containerignore b/.containerignore new file mode 100644 index 0000000..e6e6455 --- /dev/null +++ b/.containerignore @@ -0,0 +1,5 @@ +* +!.git +!pinentry-stub.sh +!pyproject.toml +!xactfetch.py diff --git a/Containerfile b/Containerfile new file mode 100644 index 0000000..ae9b45c --- /dev/null +++ b/Containerfile @@ -0,0 +1,76 @@ +FROM registry.fedoraproject.org/fedora-minimal:38 AS build + +RUN --mount=type=cache,target=/var/cache \ + microdnf install -y \ + --setopt install_weak_deps=0 \ + rust \ + cargo \ + && : + +RUN cargo install rbw + +RUN --mount=type=cache,target=/var/cache \ + microdnf install -y \ + --setopt install_weak_deps=0 \ + git-core \ + python3-devel \ + python3-pip \ + python3-wheel \ + && : + +COPY . /src + +RUN python3 -m pip wheel -w /wheels /src + +FROM registry.fedoraproject.org/fedora-minimal:38 + +RUN --mount=type=cache,target=/var/cache \ + microdnf install -y \ + --setopt install_weak_deps=0 \ + alsa-lib \ + atk \ + cairo \ + cairo-gobject \ + dbus-glib \ + fontconfig \ + freetype \ + gdk-pixbuf2 \ + gtk3 \ + libX11 \ + libX11-xcb \ + libXcomposite \ + libXcursor \ + libXdamage \ + libXext \ + libXfixes \ + libXi \ + libXrandr \ + libXrender \ + libXtst \ + libxcb \ + pango \ + python3 \ + python3-pip \ + tini \ + && echo xactfetch:x:2468: >> /etc/group \ + && echo xactfetch:*:2468:2468:xactfetch:/var/lib/xactfetch:/sbin/nologin >> /etc/passwd \ + && : + +ENV PLAYWRIGHT_BROWSERS_PATH=/usr/local/playwright/browsers + +RUN --mount=type=bind,from=build,source=/,target=/build \ + python3 -m pip install --no-index -f /build/wheels xactfetch \ + && cp /build/root/.cargo/bin/rbw* /usr/local/bin/ \ + && install /build/src/pinentry-stub.sh /usr/local/bin/pinentry-stub \ + && playwright install firefox \ + && : + +VOLUME /var/lib/xactfetch + +WORKDIR /var/lib/xactfetch + +USER 2468:2468 + +ENV XDG_CONFIG_HOME=/etc + +ENTRYPOINT ["tini", "xactfetch", "--"]