spectrum: Make builds multi-stage, add WhatsApp

Plugins will now be built in separate image stages, and copied into a
pristine image for Spectrum alone.
This commit is contained in:
Alex Palaistras 2022-05-03 15:46:45 +01:00
parent 6f7b2d99ac
commit ff700c7a8a
2 changed files with 32 additions and 17 deletions

View File

@ -1,11 +1,35 @@
FROM docker.io/debian:bullseye-slim AS builder
ARG SKYPE_VERSION=29c860170ca18c3f7f15b5ba7723e06ddc760361
ARG DISCORD_VERSION=698907f0573692ed79f35e86abcd67ae85b64e89
RUN apt-get update -y && apt-get install -y --no-install-recommends \
ca-certificates build-essential gettext git libpurple-dev libglib2.0-dev libnss3-dev \
libqrencode-dev libjson-glib-dev libhttp-parser-dev graphicsmagick-imagemagick-compat
RUN git clone https://github.com/EionRobb/skype4pidgin.git && \
cd skype4pidgin/skypeweb && git checkout ${SKYPE_VERSION} && make && make install DESTDIR=/spectrum-plugins && \
rm -Rf /skype4pidgin
RUN git clone https://github.com/EionRobb/purple-discord.git && \
cd purple-discord && git checkout ${DISCORD_VERSION} && make && make install DESTDIR=/spectrum-plugins && \
rm -Rf /purple-discord
FROM docker.io/golang:1.18 AS golang-builder
ARG WHATSAPP_VERSION=6722b2312c4fab6c1725cb17837c5d7b498b575a
RUN apt-get update -y && apt-get install -y --no-install-recommends \
ca-certificates build-essential cmake git libpurple-dev
RUN git clone https://github.com/hoehermann/purple-gowhatsapp.git && \
cd purple-gowhatsapp && git checkout ${WHATSAPP_VERSION} && mkdir -p build && cd build && \
cmake .. && cmake --build . && make install DESTDIR=/spectrum-plugins && \
rm -Rf /purple-gowhatsapp
FROM docker.io/debian:bullseye-slim
ARG VERSION=2.1.3
ENV BUILD_DEPS="curl gnupg apt-transport-https build-essential git libpurple-dev libglib2.0-dev \
libnss3-dev libqrencode-dev libjson-glib-dev libhttp-parser-dev graphicsmagick-imagemagick-compat"
RUN apt-get update -y && \
apt-get install -y --no-install-recommends ca-certificates sudo gettext libnss3 libqrencode4 libjson-glib-1.0-0 ${BUILD_DEPS}
RUN apt-get update -y && apt-get install -y --no-install-recommends \
ca-certificates curl gnupg apt-transport-https gettext libnss3 libqrencode4 libjson-glib-1.0-0
RUN echo "deb https://packages.spectrum.im/spectrum2/ bullseye main" > /etc/apt/sources.list.d/spectrum2.list && \
echo "deb-src https://packages.spectrum.im/spectrum2/ bullseye main" >> /etc/apt/sources.list.d/spectrum2.list && \
@ -13,17 +37,8 @@ RUN echo "deb https://packages.spectrum.im/spectrum2/ bullseye main" > /etc/apt/
apt-get update -y && \
apt-get install -y --no-install-recommends spectrum2=1:${VERSION}"*" spectrum2-backend-libpurple=1:${VERSION}"*"
ARG SKYPE_VERSION=29c860170ca18c3f7f15b5ba7723e06ddc760361
RUN git clone https://github.com/EionRobb/skype4pidgin.git && \
cd skype4pidgin/skypeweb && git checkout ${SKYPE_VERSION} && make && make install && \
rm -Rf /skype4pidgin
ARG DISCORD_VERSION=698907f0573692ed79f35e86abcd67ae85b64e89
RUN git clone https://github.com/EionRobb/purple-discord.git && \
cd purple-discord && git checkout ${DISCORD_VERSION} && make && make install && \
rm -Rf /purple-discord
RUN apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS}
COPY --from=builder /spectrum-plugins /
COPY --from=golang-builder /spectrum-plugins /
RUN addgroup --system --gid 10000 spectrum
RUN adduser --system --uid 10000 --ingroup spectrum --home /var/lib/spectrum2 spectrum

View File

@ -37,7 +37,7 @@ protocol = ${SPECTRUM_PROTOCOL}
[identity]
# Name of Spectrum instance in service discovery
name = Spectrum Jabber Transport
name = Spectrum Transport (${SPECTRUM_PROTOCOL})
# Type of transport ("msn", "icq", "xmpp").
# Check http://xmpp.org/registrar/disco-categories.html#gateway