mirror of
https://github.com/deuill/coreos-home-server.git
synced 2024-09-21 13:40:45 +00:00
slidge: Update to latest version, move to Bookworm
This reflects changes made to Slidge for an effective split of plugins from core, and bundles each plugin in their own virtual environment.
This commit is contained in:
parent
29fa2181ca
commit
df1c244686
@ -1,4 +1,4 @@
|
|||||||
FROM docker.io/debian:bullseye-slim AS builder
|
FROM docker.io/debian:bookworm-slim AS builder-base
|
||||||
|
|
||||||
RUN apt-get update -y && apt-get install -y --no-install-recommends \
|
RUN apt-get update -y && apt-get install -y --no-install-recommends \
|
||||||
ca-certificates git curl python3 python3-pip python3-venv
|
ca-certificates git curl python3 python3-pip python3-venv
|
||||||
@ -7,42 +7,61 @@ ENV PATH=/venv/bin:/root/.local/bin:$PATH
|
|||||||
RUN python3 -m venv /venv && python3 -m pip install wheel
|
RUN python3 -m venv /venv && python3 -m pip install wheel
|
||||||
RUN curl -fL https://install.python-poetry.org | python3 -
|
RUN curl -fL https://install.python-poetry.org | python3 -
|
||||||
|
|
||||||
ARG VERSION=d46bc86dccd3c8d956050a15f6e3e3dddf718caa
|
FROM builder-base AS builder-discord
|
||||||
RUN git clone https://git.sr.ht/~nicoco/slidge /slidge && \
|
|
||||||
cd /slidge && git reset --hard ${VERSION}
|
|
||||||
|
|
||||||
ARG PLUGINS="skype discord whatsapp"
|
ARG VERSION=1de825cc5764215c89f5d9f6fcde109340c5331e
|
||||||
RUN cd /slidge && poetry export --extras="$PLUGINS" --without-hashes > requirements.txt && \
|
RUN git clone https://git.sr.ht/~nicoco/slidcord /src && \
|
||||||
|
cd /src && git reset --hard ${VERSION}
|
||||||
|
|
||||||
|
RUN cd /src && poetry export --without-hashes > requirements.txt && \
|
||||||
python3 -m pip install --requirement requirements.txt
|
python3 -m pip install --requirement requirements.txt
|
||||||
|
|
||||||
RUN cp -R /slidge/slidge /venv/lib/python3.9/site-packages/slidge
|
RUN cp -R /src/slidcord /venv/lib/python3.11/site-packages/legacy_module
|
||||||
|
|
||||||
FROM docker.io/golang:1.20-bullseye AS builder-whatsapp
|
FROM builder-base AS builder-skype
|
||||||
|
|
||||||
|
ARG VERSION=a08320895c054b3cfdd4876d4ca7faccf4548eec
|
||||||
|
RUN git clone https://git.sr.ht/~nicoco/skidge /src && \
|
||||||
|
cd /src && git reset --hard ${VERSION}
|
||||||
|
|
||||||
|
RUN cd /src && poetry export --without-hashes > requirements.txt && \
|
||||||
|
python3 -m pip install --requirement requirements.txt
|
||||||
|
|
||||||
|
RUN cp -R /src/skidge /venv/lib/python3.11/site-packages/legacy_module
|
||||||
|
|
||||||
|
FROM builder-base AS builder-whatsapp
|
||||||
|
|
||||||
|
RUN apt-get update -y && apt-get install -y --no-install-recommends \
|
||||||
|
golang gcc python3-dev
|
||||||
|
|
||||||
ENV GOBIN=/usr/bin
|
ENV GOBIN=/usr/bin
|
||||||
RUN go install github.com/go-python/gopy@latest && \
|
RUN go install github.com/go-python/gopy@latest && \
|
||||||
go install golang.org/x/tools/cmd/goimports@latest
|
go install golang.org/x/tools/cmd/goimports@latest
|
||||||
|
|
||||||
RUN apt-get update -y && apt-get install -y --no-install-recommends \
|
|
||||||
ca-certificates python3 python3-dev python3-pip
|
|
||||||
|
|
||||||
RUN python3 -m pip install pybindgen
|
RUN python3 -m pip install pybindgen
|
||||||
|
|
||||||
COPY --from=builder /slidge /
|
ARG VERSION=a83b6567796ecc7b059beb81b5e7e4e8aff567d2
|
||||||
RUN cd /slidge/plugins/whatsapp && gopy build -vm=python3 -output=generated -no-make=true .
|
RUN git clone https://git.sr.ht/~nicoco/slidge-whatsapp /src && \
|
||||||
|
cd /src && git reset --hard ${VERSION}
|
||||||
|
|
||||||
FROM docker.io/debian:bullseye-slim
|
RUN cd /src && poetry export --without-hashes > requirements.txt && \
|
||||||
|
python3 -m pip install --requirement requirements.txt
|
||||||
|
|
||||||
|
RUN cd /src/slidge_whatsapp && gopy build -vm=python3 -output=generated -no-make=true .
|
||||||
|
RUN cp -R /src/slidge_whatsapp /venv/lib/python3.11/site-packages/legacy_module
|
||||||
|
|
||||||
|
FROM docker.io/debian:bookworm-slim
|
||||||
ENV PYTHONUNBUFFERED=1
|
ENV PYTHONUNBUFFERED=1
|
||||||
ENV PATH=/venv/bin:$PATH
|
ENV SLIDGE_LEGACY_MODULE=legacy_module
|
||||||
|
|
||||||
RUN apt-get update -y && apt-get install -y --no-install-recommends \
|
RUN apt-get update -y && apt-get install -y --no-install-recommends \
|
||||||
ca-certificates python3 libpython3.9 python3-gdbm libidn11 libmagic1 media-types shared-mime-info
|
ca-certificates python3 libpython3.11 python3-gdbm libidn12 libmagic1 media-types shared-mime-info
|
||||||
|
|
||||||
RUN addgroup --system --gid 10000 slidge
|
RUN addgroup --system --gid 10000 slidge
|
||||||
RUN adduser --system --uid 10000 --ingroup slidge --home /var/lib/slidge slidge
|
RUN adduser --system --uid 10000 --ingroup slidge --home /var/lib/slidge slidge
|
||||||
|
|
||||||
COPY --from=builder /venv /venv
|
COPY --from=builder-discord /venv /venv/discord
|
||||||
COPY --from=builder-whatsapp /slidge/plugins/whatsapp/generated /venv/lib/python3.9/site-packages/slidge/plugins/whatsapp/generated
|
COPY --from=builder-skype /venv /venv/skype
|
||||||
|
COPY --from=builder-whatsapp /venv /venv/whatsapp
|
||||||
|
|
||||||
USER slidge
|
USER slidge
|
||||||
ENTRYPOINT ["python", "-m", "slidge"]
|
|
||||||
|
@ -11,11 +11,11 @@ Restart=on-failure
|
|||||||
Environment=PODMAN_SYSTEMD_UNIT=%n
|
Environment=PODMAN_SYSTEMD_UNIT=%n
|
||||||
EnvironmentFile=%E/coreos-home-server/prosody/prosody.env
|
EnvironmentFile=%E/coreos-home-server/prosody/prosody.env
|
||||||
ExecStart=/bin/podman run --replace --name %p-%i --net internal --sdnotify=conmon \
|
ExecStart=/bin/podman run --replace --name %p-%i --net internal --sdnotify=conmon \
|
||||||
|
--entrypoint '["/venv/%i/bin/python", "-m", "slidge"]' \
|
||||||
--env-file %E/coreos-home-server/%p/%p.env \
|
--env-file %E/coreos-home-server/%p/%p.env \
|
||||||
--volume %p-%i:/var/lib/slidge:z \
|
--volume %p-%i:/var/lib/slidge:z \
|
||||||
localhost/%p:latest \
|
localhost/%p:latest \
|
||||||
--jid=%i.${PROSODY_HOST} \
|
--jid=%i.${PROSODY_HOST}
|
||||||
--legacy-module=slidge.plugins.%i
|
|
||||||
ExecStop=/bin/podman stop --ignore --time 10 %p-%i
|
ExecStop=/bin/podman stop --ignore --time 10 %p-%i
|
||||||
ExecStopPost=/bin/podman rm --ignore --force %p-%i
|
ExecStopPost=/bin/podman rm --ignore --force %p-%i
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user