mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-24 07:17:17 +00:00
reduce docker image size a bit
This commit is contained in:
parent
eae5748a30
commit
c5fbccd519
30
Dockerfile
30
Dockerfile
@ -1,4 +1,4 @@
|
|||||||
FROM archlinux:base-devel
|
FROM archlinux:base
|
||||||
|
|
||||||
# image configuration
|
# image configuration
|
||||||
ENV AHRIMAN_ARCHITECTURE="x86_64"
|
ENV AHRIMAN_ARCHITECTURE="x86_64"
|
||||||
@ -13,24 +13,22 @@ ENV AHRIMAN_REPOSITORY_ROOT="/var/lib/ahriman/ahriman"
|
|||||||
ENV AHRIMAN_USER="ahriman"
|
ENV AHRIMAN_USER="ahriman"
|
||||||
|
|
||||||
# install environment
|
# install environment
|
||||||
## install git which is required for AUR interaction and go for yay
|
## install minimal required packages
|
||||||
RUN pacman --noconfirm -Syu git go
|
RUN pacman --noconfirm -Syu binutils fakeroot git make sudo
|
||||||
## create build user
|
## create build user
|
||||||
RUN useradd -m -d /home/build -s /usr/bin/nologin build && \
|
RUN useradd -m -d /home/build -s /usr/bin/nologin build && \
|
||||||
echo "build ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/build
|
echo "build ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/build
|
||||||
## install AUR helper
|
COPY "docker/install-aur-package.sh" "/usr/local/bin/install-aur-package"
|
||||||
RUN YAY_DIR="$(runuser -u build -- mktemp -d)" && \
|
|
||||||
git clone https://aur.archlinux.org/yay.git "$YAY_DIR" && \
|
|
||||||
cd "$YAY_DIR" && \
|
|
||||||
runuser -u build -- makepkg --noconfirm --install && \
|
|
||||||
cd - && rm -r "$YAY_DIR"
|
|
||||||
## install package dependencies
|
## install package dependencies
|
||||||
RUN runuser -u build -- yay --noconfirm -Sy devtools git pyalpm python-inflection python-passlib python-requests python-srcinfo && \
|
## darcs is not installed by reasons, because it requires a lot haskell packages which dramatically increase image size
|
||||||
runuser -u build -- yay --noconfirm -Sy python-build python-installer python-wheel && \
|
RUN pacman --noconfirm -Sy devtools git pyalpm python-inflection python-passlib python-requests python-srcinfo && \
|
||||||
runuser -u build -- yay --noconfirm -Sy breezy darcs mercurial python-aioauth-client python-aiohttp \
|
pacman --noconfirm -Sy python-build python-installer python-wheel && \
|
||||||
python-aiohttp-debugtoolbar python-aiohttp-jinja2 python-aiohttp-security \
|
pacman --noconfirm -Sy breezy mercurial python-aiohttp python-boto3 python-cryptography python-jinja rsync subversion && \
|
||||||
python-aiohttp-session python-boto3 python-cryptography python-jinja \
|
runuser -u build -- install-aur-package python-aioauth-client python-aiohttp-jinja2 python-aiohttp-debugtoolbar \
|
||||||
rsync subversion
|
python-aiohttp-session python-aiohttp-security
|
||||||
|
|
||||||
|
# cleanup unused
|
||||||
|
RUN find "/var/cache/pacman/pkg" -type f -delete
|
||||||
|
|
||||||
# install ahriman
|
# install ahriman
|
||||||
## copy tree
|
## copy tree
|
||||||
@ -41,7 +39,7 @@ RUN cd "/home/build/ahriman" && \
|
|||||||
cp ./*-src.tar.xz "package/archlinux" && \
|
cp ./*-src.tar.xz "package/archlinux" && \
|
||||||
cd "package/archlinux" && \
|
cd "package/archlinux" && \
|
||||||
runuser -u build -- makepkg --noconfirm --install --skipchecksums && \
|
runuser -u build -- makepkg --noconfirm --install --skipchecksums && \
|
||||||
cd - && rm -r "/home/build/ahriman"
|
cd / && rm -r "/home/build/ahriman"
|
||||||
|
|
||||||
VOLUME ["/var/lib/ahriman"]
|
VOLUME ["/var/lib/ahriman"]
|
||||||
|
|
||||||
|
@ -30,6 +30,6 @@ For installation details kindly refer to the [documentation](https://ahriman.rea
|
|||||||
|
|
||||||
Every available option is described in the [documentation](https://ahriman.readthedocs.io/en/latest/configuration.html).
|
Every available option is described in the [documentation](https://ahriman.readthedocs.io/en/latest/configuration.html).
|
||||||
|
|
||||||
The application provides reasonable defaults which allow to use it out-of-box, though additional steps (like configuring build toolchain and sudoers) is recommended and can be easily achieved by following install instructions.
|
The application provides reasonable defaults which allow to use it out-of-box; however additional steps (like configuring build toolchain and sudoers) are recommended and can be easily achieved by following install instructions.
|
||||||
|
|
||||||
## [FAQ](https://ahriman.readthedocs.io/en/latest/faq.html)
|
## [FAQ](https://ahriman.readthedocs.io/en/latest/faq.html)
|
||||||
|
@ -33,7 +33,7 @@ fi
|
|||||||
ahriman "${AHRIMAN_DEFAULT_ARGS[@]}" repo-setup "${AHRIMAN_SETUP_ARGS[@]}"
|
ahriman "${AHRIMAN_DEFAULT_ARGS[@]}" repo-setup "${AHRIMAN_SETUP_ARGS[@]}"
|
||||||
|
|
||||||
# refresh database
|
# refresh database
|
||||||
runuser -u build -- yay --noconfirm -Syy &> /dev/null
|
pacman -Syy &> /dev/null
|
||||||
# create machine-id which is required by build tools
|
# create machine-id which is required by build tools
|
||||||
systemd-machine-id-setup &> /dev/null
|
systemd-machine-id-setup &> /dev/null
|
||||||
|
|
||||||
|
12
docker/install-aur-package.sh
Executable file
12
docker/install-aur-package.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
for PACKAGE in "$@"; do
|
||||||
|
BUILD_DIR="$(mktemp -d)"
|
||||||
|
git clone https://aur.archlinux.org/"$PACKAGE".git "$BUILD_DIR"
|
||||||
|
cd "$BUILD_DIR"
|
||||||
|
makepkg --noconfirm --install --rmdeps --syncdeps
|
||||||
|
cd /
|
||||||
|
rm -r "$BUILD_DIR"
|
||||||
|
done
|
@ -38,6 +38,14 @@ ahriman.core.exceptions module
|
|||||||
:no-undoc-members:
|
:no-undoc-members:
|
||||||
:show-inheritance:
|
:show-inheritance:
|
||||||
|
|
||||||
|
ahriman.core.lazy\_logging module
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
.. automodule:: ahriman.core.lazy_logging
|
||||||
|
:members:
|
||||||
|
:no-undoc-members:
|
||||||
|
:show-inheritance:
|
||||||
|
|
||||||
ahriman.core.spawn module
|
ahriman.core.spawn module
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
|
@ -240,7 +240,7 @@ The default action (in case if no arguments provided) is ``repo-update``. Basica
|
|||||||
|
|
||||||
docker run -v /path/to/local/repo:/var/lib/ahriman -v /etc/ahriman.ini:/etc/ahriman.ini.d/10-overrides.ini arcan1s/ahriman:latest
|
docker run -v /path/to/local/repo:/var/lib/ahriman -v /etc/ahriman.ini:/etc/ahriman.ini.d/10-overrides.ini arcan1s/ahriman:latest
|
||||||
|
|
||||||
By default, it runs ``repo-update``, but it can be overwritten to any other command you would like to, e.g.:
|
The action can be specified during run, e.g.:
|
||||||
|
|
||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user