mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-12-18 14:52:52 +00:00
Used PKGMGR as Basis for infinito.nexus
This commit is contained in:
81
Dockerfile
81
Dockerfile
@@ -1,60 +1,41 @@
|
|||||||
FROM archlinux:latest
|
# syntax=docker/dockerfile:1
|
||||||
|
|
||||||
# 1) Pakete inkl. docker (damit docker CLI im Container vorhanden ist)
|
ARG DISTRO=arch
|
||||||
RUN pacman -Syu --noconfirm \
|
|
||||||
base-devel \
|
|
||||||
git \
|
|
||||||
python \
|
|
||||||
python-pip \
|
|
||||||
python-setuptools \
|
|
||||||
alsa-lib \
|
|
||||||
go \
|
|
||||||
rsync \
|
|
||||||
docker \
|
|
||||||
&& pacman -Scc --noconfirm
|
|
||||||
|
|
||||||
# 2) systemctl & yay stubben
|
ARG PKGMGR_IMAGE_OWNER=kevinveenbirkenbach
|
||||||
RUN printf '#!/bin/sh\nexit 0\n' > /usr/bin/systemctl \
|
ARG PKGMGR_IMAGE_TAG=stable
|
||||||
&& chmod +x /usr/bin/systemctl \
|
ARG PKGMGR_IMAGE="ghcr.io/${PKGMGR_IMAGE_OWNER}/pkgmgr-${DISTRO}:${PKGMGR_IMAGE_TAG}"
|
||||||
&& printf '#!/bin/sh\nexit 0\n' > /usr/bin/yay \
|
|
||||||
&& chmod +x /usr/bin/yay
|
|
||||||
|
|
||||||
# 3) python-simpleaudio aus AUR
|
FROM ${PKGMGR_IMAGE} AS infinito
|
||||||
RUN useradd -m aur_builder \
|
SHELL ["/bin/bash", "-lc"]
|
||||||
&& su aur_builder -c "git clone https://aur.archlinux.org/python-simpleaudio.git /home/aur_builder/psa && \
|
|
||||||
cd /home/aur_builder/psa && \
|
|
||||||
makepkg --noconfirm --skippgpcheck" \
|
|
||||||
&& pacman -U --noconfirm /home/aur_builder/psa/*.pkg.tar.zst \
|
|
||||||
&& rm -rf /home/aur_builder/psa
|
|
||||||
|
|
||||||
# 4) pkgmgr + venv
|
RUN cat /etc/os-release || true
|
||||||
ENV PKGMGR_REPO=/opt/package-manager \
|
|
||||||
PKGMGR_VENV=/root/.venvs/pkgmgr
|
|
||||||
|
|
||||||
RUN git clone https://github.com/kevinveenbirkenbach/package-manager.git $PKGMGR_REPO \
|
# ------------------------------------------------------------
|
||||||
&& python -m venv $PKGMGR_VENV \
|
# Infinito.Nexus source in
|
||||||
&& $PKGMGR_VENV/bin/pip install --upgrade pip \
|
# ------------------------------------------------------------
|
||||||
&& $PKGMGR_VENV/bin/pip install --no-cache-dir -r $PKGMGR_REPO/requirements.txt ansible \
|
|
||||||
&& printf '#!/bin/sh\n. %s/bin/activate\nexec python %s/main.py "$@"\n' \
|
|
||||||
"$PKGMGR_VENV" "$PKGMGR_REPO" > /usr/local/bin/pkgmgr \
|
|
||||||
&& chmod +x /usr/local/bin/pkgmgr
|
|
||||||
|
|
||||||
ENV PATH="$PKGMGR_VENV/bin:/root/.local/bin:${PATH}"
|
|
||||||
|
|
||||||
# 6) Infinito.Nexus Quelle rein
|
|
||||||
COPY . /opt/infinito-src
|
COPY . /opt/infinito-src
|
||||||
|
|
||||||
# 7) Infinito via pkgmgr (shallow)
|
# ------------------------------------------------------------
|
||||||
RUN pkgmgr install infinito --clone-mode shallow
|
# Install infinito via pkgmgr (shallow)
|
||||||
|
# ------------------------------------------------------------
|
||||||
|
RUN set -euo pipefail; \
|
||||||
|
pkgmgr install infinito --clone-mode shallow
|
||||||
|
|
||||||
# 8) Override mit lokaler Quelle
|
# ------------------------------------------------------------
|
||||||
RUN INFINITO_PATH=$(pkgmgr path infinito) && \
|
# Override with local source
|
||||||
rm -rf "$INFINITO_PATH"/* && \
|
# ------------------------------------------------------------
|
||||||
rsync -a --delete --exclude='.git' /opt/infinito-src/ "$INFINITO_PATH"/
|
RUN set -euo pipefail; \
|
||||||
|
INFINITO_PATH="$(pkgmgr path infinito)"; \
|
||||||
|
rm -rf "${INFINITO_PATH:?}/"*; \
|
||||||
|
rsync -a --delete --exclude='.git' /opt/infinito-src/ "${INFINITO_PATH}/"
|
||||||
|
|
||||||
# 9) Symlink
|
# ------------------------------------------------------------
|
||||||
RUN INFINITO_PATH=$(pkgmgr path infinito) && \
|
# Symlink entry
|
||||||
ln -sf "$INFINITO_PATH"/main.py /usr/local/bin/infinito && \
|
# ------------------------------------------------------------
|
||||||
chmod +x /usr/local/bin/infinito
|
RUN set -euo pipefail; \
|
||||||
|
INFINITO_PATH="$(pkgmgr path infinito)"; \
|
||||||
|
ln -sf "${INFINITO_PATH}/main.py" /usr/local/bin/infinito; \
|
||||||
|
chmod +x /usr/local/bin/infinito
|
||||||
|
|
||||||
CMD sh -c "infinito --help && exec tail -f /dev/null"
|
CMD ["bash", "-lc", "infinito --help && exec tail -f /dev/null"]
|
||||||
|
|||||||
3
Makefile
3
Makefile
@@ -55,6 +55,9 @@ tree:
|
|||||||
mig: list tree
|
mig: list tree
|
||||||
@echo "Creating meta data for meta infinity graph"
|
@echo "Creating meta data for meta infinity graph"
|
||||||
|
|
||||||
|
make build:
|
||||||
|
docker build --network=host -t infinito:latest .
|
||||||
|
|
||||||
dockerignore:
|
dockerignore:
|
||||||
@echo "Create dockerignore"
|
@echo "Create dockerignore"
|
||||||
cat .gitignore > .dockerignore
|
cat .gitignore > .dockerignore
|
||||||
|
|||||||
Reference in New Issue
Block a user