mirror of
https://github.com/linuxserver/docker-pidgin.git
synced 2026-03-09 00:03:24 +08:00
Merge pull request #5 from linuxserver/rebase
rebase to new alpine kasmvnc image
This commit is contained in:
commit
35f00b2cda
1
.github/ISSUE_TEMPLATE/issue.bug.yml
vendored
1
.github/ISSUE_TEMPLATE/issue.bug.yml
vendored
@ -53,7 +53,6 @@ body:
|
||||
options:
|
||||
- x86-64
|
||||
- arm64
|
||||
- armhf
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
|
||||
2
.github/workflows/external_trigger.yml
vendored
2
.github/workflows/external_trigger.yml
vendored
@ -18,7 +18,7 @@ jobs:
|
||||
fi
|
||||
echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_PIDGIN_MASTER\". ****"
|
||||
echo "**** Retrieving external version ****"
|
||||
EXT_RELEASE=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.16/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
|
||||
EXT_RELEASE=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.17/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
|
||||
&& awk '/^P:'"pidgin"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://')
|
||||
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
|
||||
echo "**** Can't retrieve external version, exiting ****"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
# build stage
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:3.16 as plugins
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:3.17 as plugins
|
||||
|
||||
RUN \
|
||||
echo "**** install dev deps ****" && \
|
||||
@ -101,7 +101,7 @@ RUN \
|
||||
make DESTDIR="/buildout" install
|
||||
|
||||
# runtime stage
|
||||
FROM ghcr.io/linuxserver/baseimage-rdesktop-web:3.16
|
||||
FROM ghcr.io/linuxserver/baseimage-kasmvnc:alpine317
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@ -119,12 +119,12 @@ COPY --from=plugins /buildout/ /
|
||||
RUN \
|
||||
echo "**** install packages ****" && \
|
||||
if [ -z ${PIDGIN_VERSION+x} ]; then \
|
||||
PIDGIN_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.16/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
|
||||
PIDGIN_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.17/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
|
||||
&& awk '/^P:pidgin$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
|
||||
fi && \
|
||||
apk add --no-cache \
|
||||
chromium \
|
||||
discount \
|
||||
firefox-esr \
|
||||
libpurple-bonjour \
|
||||
libpurple-xmpp \
|
||||
libqrencode \
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
# build stage
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.16 as plugins
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.17 as plugins
|
||||
|
||||
RUN \
|
||||
echo "**** install dev deps ****" && \
|
||||
@ -101,7 +101,7 @@ RUN \
|
||||
make DESTDIR="/buildout" install
|
||||
|
||||
# runtime stage
|
||||
FROM ghcr.io/linuxserver/baseimage-rdesktop-web:arm64v8-3.16
|
||||
FROM ghcr.io/linuxserver/baseimage-kasmvnc:arm64v8-alpine317
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@ -119,12 +119,12 @@ COPY --from=plugins /buildout/ /
|
||||
RUN \
|
||||
echo "**** install packages ****" && \
|
||||
if [ -z ${PIDGIN_VERSION+x} ]; then \
|
||||
PIDGIN_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.16/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
|
||||
PIDGIN_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.17/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
|
||||
&& awk '/^P:pidgin$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
|
||||
fi && \
|
||||
apk add --no-cache \
|
||||
chromium \
|
||||
discount \
|
||||
firefox-esr \
|
||||
libpurple-bonjour \
|
||||
libpurple-xmpp \
|
||||
libqrencode \
|
||||
|
||||
155
Dockerfile.armhf
155
Dockerfile.armhf
@ -1,155 +0,0 @@
|
||||
# build stage
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.16 as plugins
|
||||
|
||||
RUN \
|
||||
echo "**** install dev deps ****" && \
|
||||
apk add --no-cache \
|
||||
alpine-sdk \
|
||||
discount-dev \
|
||||
git \
|
||||
glib-dev \
|
||||
imagemagick \
|
||||
json-glib-dev \
|
||||
libgcrypt-dev \
|
||||
libpng-dev \
|
||||
libqrencode-dev \
|
||||
libwebp-dev \
|
||||
nss-dev \
|
||||
openssl-dev \
|
||||
pidgin-dev && \
|
||||
mkdir /buildout
|
||||
|
||||
RUN \
|
||||
echo "**** grab telegram plugin source ****" && \
|
||||
TELEGRAM_RELEASE=$(curl -sX GET "https://api.github.com/repos/majn/telegram-purple/releases/latest" \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]') && \
|
||||
git clone https://github.com/majn/telegram-purple.git && \
|
||||
cd telegram-purple && \
|
||||
git checkout ${TELEGRAM_RELEASE} && \
|
||||
git submodule update --init --recursive
|
||||
|
||||
RUN \
|
||||
echo "**** build telegram plugin ****" && \
|
||||
cd /telegram-purple && \
|
||||
./configure \
|
||||
--prefix=/usr && \
|
||||
make && \
|
||||
make DESTDIR="/buildout" install
|
||||
|
||||
RUN \
|
||||
echo "**** grab discord plugin source ****" && \
|
||||
git clone https://github.com/EionRobb/purple-discord.git
|
||||
|
||||
RUN \
|
||||
echo "**** build discord plugin ****" && \
|
||||
cd /purple-discord && \
|
||||
make && \
|
||||
make DESTDIR="/buildout" install
|
||||
|
||||
RUN \
|
||||
echo "**** grab slack plugin source ****" && \
|
||||
git clone https://github.com/EionRobb/slack-libpurple.git
|
||||
|
||||
RUN \
|
||||
echo "**** build discord plugin ****" && \
|
||||
cd /slack-libpurple && \
|
||||
make && \
|
||||
make DESTDIR="/buildout" install
|
||||
|
||||
RUN \
|
||||
echo "**** grab skype plugin source ****" && \
|
||||
SKYPE_RELEASE=$(curl -sX GET "https://api.github.com/repos/EionRobb/skype4pidgin/releases/latest" \
|
||||
| awk '/tag_name/{print $4;exit}' FS='[""]') && \
|
||||
git clone https://github.com/EionRobb/skype4pidgin.git && \
|
||||
cd skype4pidgin && \
|
||||
git checkout ${SKYPE_RELEASE}
|
||||
|
||||
RUN \
|
||||
echo "**** build skype plugin ****" && \
|
||||
cd /skype4pidgin/skypeweb && \
|
||||
make && \
|
||||
make DESTDIR="/buildout" install
|
||||
|
||||
RUN \
|
||||
echo "**** grab ICQ wim source ****" && \
|
||||
git clone https://github.com/EionRobb/icyque.git
|
||||
|
||||
RUN \
|
||||
echo "**** build ICQ wim plugin ****" && \
|
||||
cd /icyque && \
|
||||
make && \
|
||||
make DESTDIR="/buildout" install
|
||||
|
||||
RUN \
|
||||
echo "**** grab rocketchat source ****" && \
|
||||
git clone https://github.com/EionRobb/purple-rocketchat.git
|
||||
|
||||
RUN \
|
||||
echo "**** build rocketchat plugin ****" && \
|
||||
cd /purple-rocketchat && \
|
||||
make && \
|
||||
make DESTDIR="/buildout" install
|
||||
|
||||
RUN \
|
||||
echo "**** grab instagram source ****" && \
|
||||
git clone https://github.com/EionRobb/purple-instagram.git
|
||||
|
||||
RUN \
|
||||
echo "**** build instagram plugin ****" && \
|
||||
cd /purple-instagram && \
|
||||
make && \
|
||||
make DESTDIR="/buildout" install
|
||||
|
||||
# runtime stage
|
||||
FROM ghcr.io/linuxserver/baseimage-rdesktop-web:arm32v7-3.16
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
ARG VERSION
|
||||
ARG PIDGIN_VERSION
|
||||
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
|
||||
LABEL maintainer="thelamer"
|
||||
|
||||
# title
|
||||
ENV TITLE=Pidgin
|
||||
|
||||
# copy over all plugin libs
|
||||
COPY --from=plugins /buildout/ /
|
||||
|
||||
RUN \
|
||||
echo "**** install packages ****" && \
|
||||
if [ -z ${PIDGIN_VERSION+x} ]; then \
|
||||
PIDGIN_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.16/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \
|
||||
&& awk '/^P:pidgin$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \
|
||||
fi && \
|
||||
apk add --no-cache \
|
||||
discount \
|
||||
firefox-esr \
|
||||
libpurple-bonjour \
|
||||
libpurple-xmpp \
|
||||
libqrencode \
|
||||
libwebp \
|
||||
nss \
|
||||
pidgin==${PIDGIN_VERSION} \
|
||||
pidgin-lang \
|
||||
pidgin-otr \
|
||||
pidgin-otr-lang \
|
||||
pidgin-sipe \
|
||||
pidgin-sipe-lang \
|
||||
purple-carbons \
|
||||
purple-lurch \
|
||||
purple-xmpp-http-upload && \
|
||||
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \
|
||||
purple-facebook \
|
||||
purple-hangouts && \
|
||||
echo "**** cleanup ****" && \
|
||||
rm -rf \
|
||||
/tmp/*
|
||||
|
||||
# add local files
|
||||
COPY /root /
|
||||
|
||||
# ports and volumes
|
||||
EXPOSE 3000
|
||||
|
||||
VOLUME /config
|
||||
74
Jenkinsfile
vendored
74
Jenkinsfile
vendored
@ -25,8 +25,8 @@ pipeline {
|
||||
DEV_DOCKERHUB_IMAGE = 'lsiodev/pidgin'
|
||||
PR_DOCKERHUB_IMAGE = 'lspipepr/pidgin'
|
||||
DIST_IMAGE = 'alpine'
|
||||
DIST_TAG = '3.16'
|
||||
DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.16/community/'
|
||||
DIST_TAG = '3.17'
|
||||
DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.17/community/'
|
||||
DIST_REPO_PACKAGES = 'pidgin'
|
||||
MULTIARCH = 'true'
|
||||
CI = 'true'
|
||||
@ -161,7 +161,7 @@ pipeline {
|
||||
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
|
||||
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
|
||||
if (env.MULTIARCH == 'true') {
|
||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
} else {
|
||||
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
}
|
||||
@ -184,7 +184,7 @@ pipeline {
|
||||
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
|
||||
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
|
||||
if (env.MULTIARCH == 'true') {
|
||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||
} else {
|
||||
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||
}
|
||||
@ -207,7 +207,7 @@ pipeline {
|
||||
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
|
||||
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
|
||||
if (env.MULTIARCH == 'true') {
|
||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
|
||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
|
||||
} else {
|
||||
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
|
||||
}
|
||||
@ -492,41 +492,6 @@ pipeline {
|
||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||
}
|
||||
}
|
||||
stage('Build ARMHF') {
|
||||
agent {
|
||||
label 'ARMHF'
|
||||
}
|
||||
steps {
|
||||
echo "Running on node: ${NODE_NAME}"
|
||||
echo 'Logging into Github'
|
||||
sh '''#! /bin/bash
|
||||
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
|
||||
'''
|
||||
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf"
|
||||
sh "docker buildx build \
|
||||
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
|
||||
--label \"org.opencontainers.image.authors=linuxserver.io\" \
|
||||
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-pidgin/packages\" \
|
||||
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-pidgin\" \
|
||||
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-pidgin\" \
|
||||
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
|
||||
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
|
||||
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
|
||||
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
|
||||
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
|
||||
--label \"org.opencontainers.image.title=Pidgin\" \
|
||||
--label \"org.opencontainers.image.description=[Pidgin](https://pidgin.im/) is a chat program which lets you log into accounts on multiple chat networks simultaneously. This means that you can be chatting with friends on XMPP and sitting in an IRC channel at the same time.\" \
|
||||
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \
|
||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
|
||||
retry(5) {
|
||||
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
|
||||
}
|
||||
sh '''docker rmi \
|
||||
${IMAGE}:arm32v7-${META_TAG} \
|
||||
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
|
||||
}
|
||||
}
|
||||
stage('Build ARM64') {
|
||||
agent {
|
||||
label 'ARM64'
|
||||
@ -677,9 +642,7 @@ pipeline {
|
||||
set -e
|
||||
docker pull ghcr.io/linuxserver/ci:latest
|
||||
if [ "${MULTIARCH}" == "true" ]; then
|
||||
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
|
||||
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
||||
fi
|
||||
docker run --rm \
|
||||
@ -795,8 +758,6 @@ pipeline {
|
||||
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
|
||||
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
||||
if [ "${CI}" == "false" ]; then
|
||||
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
|
||||
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
||||
fi
|
||||
@ -804,47 +765,35 @@ pipeline {
|
||||
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
|
||||
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
|
||||
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
||||
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
|
||||
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
|
||||
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
|
||||
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
|
||||
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
|
||||
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
|
||||
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
fi
|
||||
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
|
||||
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
||||
docker push ${MANIFESTIMAGE}:amd64-latest
|
||||
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
|
||||
docker push ${MANIFESTIMAGE}:arm32v7-latest
|
||||
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
|
||||
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||
docker push ${MANIFESTIMAGE}:arm64v8-latest
|
||||
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
|
||||
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
|
||||
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
fi
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
|
||||
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
|
||||
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
|
||||
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
|
||||
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
|
||||
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
|
||||
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
|
||||
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
|
||||
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
|
||||
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
|
||||
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
|
||||
fi
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:latest
|
||||
@ -862,21 +811,16 @@ pipeline {
|
||||
${DELETEIMAGE}:amd64-${META_TAG} \
|
||||
${DELETEIMAGE}:amd64-latest \
|
||||
${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
|
||||
${DELETEIMAGE}:arm32v7-${META_TAG} \
|
||||
${DELETEIMAGE}:arm32v7-latest \
|
||||
${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
|
||||
${DELETEIMAGE}:arm64v8-${META_TAG} \
|
||||
${DELETEIMAGE}:arm64v8-latest \
|
||||
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker rmi \
|
||||
${DELETEIMAGE}:amd64-${SEMVER} \
|
||||
${DELETEIMAGE}:arm32v7-${SEMVER} \
|
||||
${DELETEIMAGE}:arm64v8-${SEMVER} || :
|
||||
fi
|
||||
done
|
||||
docker rmi \
|
||||
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
|
||||
ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
|
||||
'''
|
||||
}
|
||||
|
||||
41
README.md
41
README.md
@ -56,17 +56,14 @@ The architectures supported by this image are:
|
||||
| :----: | :----: | ---- |
|
||||
| x86-64 | ✅ | amd64-\<version tag\> |
|
||||
| arm64 | ✅ | arm64v8-\<version tag\> |
|
||||
| armhf | ✅ | arm32v7-\<version tag\> |
|
||||
| armhf | ❌ | |
|
||||
|
||||
## Application Setup
|
||||
|
||||
The application can be accessed at:
|
||||
|
||||
* http://yourhost:3000/
|
||||
|
||||
By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link:
|
||||
|
||||
* http://yourhost:3000/?login=true
|
||||
* https://yourhost:3001/
|
||||
|
||||
This Pidgin installation comes with default chat plugins plus a series of third party ones. **Please note that the third party plugins for the most part are not simply plug and play, you will need to reference their documentation and possibly generate oauth tokens along with other workarounds**. Third party plugins are always in a state of constant development do not expect every single native feature to work flawlessly. To ease integration with some third party plugins we include Firefox in this image to allow you to fill out captchas or pre-auth before loading your credentials into the program, simply right click the desktop to launch it.
|
||||
|
||||
@ -89,6 +86,36 @@ This Pidgin installation comes with default chat plugins plus a series of third
|
||||
* XMPP- Default XMPP plugin
|
||||
* Zephyr- Default project Athena plugin
|
||||
|
||||
### Options in all KasmVNC based GUI containers
|
||||
|
||||
This container is based on [Docker Baseimage KasmVNC](https://github.com/linuxserver/docker-baseimage-kasmvnc) which means there are additional environment variables and run configurations to enable or disable specific functionality.
|
||||
|
||||
#### Optional environment variables
|
||||
|
||||
| Variable | Description |
|
||||
| :----: | --- |
|
||||
| CUSTOM_PORT | Internal port the container listens on for http if it needs to be swapped from the default 3000. |
|
||||
| CUSTOM_HTTPS_PORT | Internal port the container listens on for https if it needs to be swapped from the default 3001. |
|
||||
| CUSTOM_USER | HTTP Basic auth username, abc is default. |
|
||||
| PASSWORD | HTTP Basic auth password, abc is default. If unset there will be no auth |
|
||||
| SUBFOLDER | Subfolder for the application if running a subfolder reverse proxy, need both slashes IE `/subfolder/` |
|
||||
| TITLE | The page title displayed on the web browser, default "KasmVNC Client". |
|
||||
| FM_HOME | This is the home directory (landing) for the file manager, default "/config". |
|
||||
| START_DOCKER | If set to false a container with privilege will not automatically start the DinD Docker setup. |
|
||||
| DRINODE | If mounting in /dev/dri for [DRI3 GPU Acceleration](https://www.kasmweb.com/kasmvnc/docs/master/gpu_acceleration.html) allows you to specify the device to use IE `/dev/dri/renderD128` |
|
||||
|
||||
#### Optional run configurations
|
||||
|
||||
| Variable | Description |
|
||||
| :----: | --- |
|
||||
| `--privileged` | Will start a Docker in Docker (DinD) setup inside the container to use docker in an isolated environment. For increased performance mount the Docker directory inside the container to the host IE `-v /home/user/docker-data:/var/lib/docker`. |
|
||||
| `-v /var/run/docker.sock:/var/run/docker.sock` | Mount in the host level Docker socket to either interact with it via CLI or use Docker enabled applications. |
|
||||
| `--device /dev/dri:/dev/dri` | Mount a GPU into the container, this can be used in conjunction with the `DRINODE` environment variable to leverage a host video card for GPU accelerated appplications. Only **Open Source** drivers are supported IE (Intel,AMDGPU,Radeon,ATI,Nouveau) |
|
||||
|
||||
### Lossless mode
|
||||
|
||||
This container is capable of delivering a true lossless image at a high framerate to your web browser by changing the Stream Quality preset to "Lossless", more information [here](https://www.kasmweb.com/docs/latest/how_to/lossless.html#technical-background). In order to use this mode from a non localhost endpoint the HTTPS port on 3001 needs to be used. If using a reverse proxy to port 3000 specific headers will need to be set as outlined [here](https://github.com/linuxserver/docker-baseimage-kasmvnc#lossless).
|
||||
|
||||
## Usage
|
||||
|
||||
Here are some example snippets to help you get started creating a container.
|
||||
@ -112,6 +139,7 @@ services:
|
||||
- /path/to/config:/config
|
||||
ports:
|
||||
- 3000:3000
|
||||
- 3001:3001
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
@ -125,6 +153,7 @@ docker run -d \
|
||||
-e PGID=1000 \
|
||||
-e TZ=Etc/UTC \
|
||||
-p 3000:3000 \
|
||||
-p 3001:3001 \
|
||||
-v /path/to/config:/config \
|
||||
--restart unless-stopped \
|
||||
lscr.io/linuxserver/pidgin:latest
|
||||
@ -138,6 +167,7 @@ Container images are configured using parameters passed at runtime (such as thos
|
||||
| Parameter | Function |
|
||||
| :----: | --- |
|
||||
| `-p 3000` | Pidgin desktop gui. |
|
||||
| `-p 3001` | Pidgin desktop gui HTTPS. |
|
||||
| `-e PUID=1000` | for UserID - see below for explanation |
|
||||
| `-e PGID=1000` | for GroupID - see below for explanation |
|
||||
| `-e TZ=Etc/UTC` | specify a timezone to use, see this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). |
|
||||
@ -253,6 +283,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## Versions
|
||||
|
||||
* **18.03.23:** - Rebase to KasmVNC base image.
|
||||
* **21.10.22:** - Rebase to Alpine 3.16, migrate to s6v3.
|
||||
* **15.02.22:** - Add build deps for discord.
|
||||
* **23.12.21:** - Rebase to Alpine 3.15.
|
||||
|
||||
@ -6,6 +6,7 @@ external_type: alpine_repo
|
||||
release_type: stable
|
||||
release_tag: latest
|
||||
ls_branch: master
|
||||
build_armhf: false
|
||||
repo_vars:
|
||||
- BUILD_VERSION_ARG = 'PIDGIN_VERSION'
|
||||
- LS_USER = 'linuxserver'
|
||||
@ -15,8 +16,8 @@ repo_vars:
|
||||
- DEV_DOCKERHUB_IMAGE = 'lsiodev/pidgin'
|
||||
- PR_DOCKERHUB_IMAGE = 'lspipepr/pidgin'
|
||||
- DIST_IMAGE = 'alpine'
|
||||
- DIST_TAG = '3.16'
|
||||
- DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.16/community/'
|
||||
- DIST_TAG = '3.17'
|
||||
- DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.17/community/'
|
||||
- DIST_REPO_PACKAGES = 'pidgin'
|
||||
- MULTIARCH = 'true'
|
||||
- CI = 'true'
|
||||
|
||||
@ -12,7 +12,6 @@ project_blurb_optional_extras_enabled: false
|
||||
available_architectures:
|
||||
- { arch: "{{ arch_x86_64 }}", tag: "latest"}
|
||||
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
|
||||
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
|
||||
|
||||
# development version
|
||||
development_versions: false
|
||||
@ -29,6 +28,7 @@ param_volumes:
|
||||
param_usage_include_ports: true
|
||||
param_ports:
|
||||
- { external_port: "3000", internal_port: "3000", port_desc: "Pidgin desktop gui." }
|
||||
- { external_port: "3001", internal_port: "3001", port_desc: "Pidgin desktop gui HTTPS." }
|
||||
opt_security_opt_param: true
|
||||
opt_security_opt_param_vars:
|
||||
- { run_var: "seccomp=unconfined", compose_var: "seccomp:unconfined", desc: "For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker." }
|
||||
@ -37,13 +37,10 @@ opt_security_opt_param_vars:
|
||||
app_setup_block_enabled: true
|
||||
app_setup_block: |
|
||||
The application can be accessed at:
|
||||
|
||||
* http://yourhost:3000/
|
||||
|
||||
By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link:
|
||||
|
||||
* http://yourhost:3000/?login=true
|
||||
|
||||
* http://yourhost:3000/
|
||||
* https://yourhost:3001/
|
||||
|
||||
This Pidgin installation comes with default chat plugins plus a series of third party ones. **Please note that the third party plugins for the most part are not simply plug and play, you will need to reference their documentation and possibly generate oauth tokens along with other workarounds**. Third party plugins are always in a state of constant development do not expect every single native feature to work flawlessly. To ease integration with some third party plugins we include Firefox in this image to allow you to fill out captchas or pre-auth before loading your credentials into the program, simply right click the desktop to launch it.
|
||||
|
||||
* Bonjour- Default XMPP style plugin
|
||||
@ -64,9 +61,40 @@ app_setup_block: |
|
||||
* Telegram- Provided by [telegram-purple](https://github.com/majn/telegram-purple)
|
||||
* XMPP- Default XMPP plugin
|
||||
* Zephyr- Default project Athena plugin
|
||||
|
||||
### Options in all KasmVNC based GUI containers
|
||||
|
||||
This container is based on [Docker Baseimage KasmVNC](https://github.com/linuxserver/docker-baseimage-kasmvnc) which means there are additional environment variables and run configurations to enable or disable specific functionality.
|
||||
|
||||
#### Optional environment variables
|
||||
|
||||
| Variable | Description |
|
||||
| :----: | --- |
|
||||
| CUSTOM_PORT | Internal port the container listens on for http if it needs to be swapped from the default 3000. |
|
||||
| CUSTOM_HTTPS_PORT | Internal port the container listens on for https if it needs to be swapped from the default 3001. |
|
||||
| CUSTOM_USER | HTTP Basic auth username, abc is default. |
|
||||
| PASSWORD | HTTP Basic auth password, abc is default. If unset there will be no auth |
|
||||
| SUBFOLDER | Subfolder for the application if running a subfolder reverse proxy, need both slashes IE `/subfolder/` |
|
||||
| TITLE | The page title displayed on the web browser, default "KasmVNC Client". |
|
||||
| FM_HOME | This is the home directory (landing) for the file manager, default "/config". |
|
||||
| START_DOCKER | If set to false a container with privilege will not automatically start the DinD Docker setup. |
|
||||
| DRINODE | If mounting in /dev/dri for [DRI3 GPU Acceleration](https://www.kasmweb.com/kasmvnc/docs/master/gpu_acceleration.html) allows you to specify the device to use IE `/dev/dri/renderD128` |
|
||||
|
||||
#### Optional run configurations
|
||||
|
||||
| Variable | Description |
|
||||
| :----: | --- |
|
||||
| `--privileged` | Will start a Docker in Docker (DinD) setup inside the container to use docker in an isolated environment. For increased performance mount the Docker directory inside the container to the host IE `-v /home/user/docker-data:/var/lib/docker`. |
|
||||
| `-v /var/run/docker.sock:/var/run/docker.sock` | Mount in the host level Docker socket to either interact with it via CLI or use Docker enabled applications. |
|
||||
| `--device /dev/dri:/dev/dri` | Mount a GPU into the container, this can be used in conjunction with the `DRINODE` environment variable to leverage a host video card for GPU accelerated appplications. Only **Open Source** drivers are supported IE (Intel,AMDGPU,Radeon,ATI,Nouveau) |
|
||||
|
||||
### Lossless mode
|
||||
|
||||
This container is capable of delivering a true lossless image at a high framerate to your web browser by changing the Stream Quality preset to "Lossless", more information [here](https://www.kasmweb.com/docs/latest/how_to/lossless.html#technical-background). In order to use this mode from a non localhost endpoint the HTTPS port on 3001 needs to be used. If using a reverse proxy to port 3000 specific headers will need to be set as outlined [here](https://github.com/linuxserver/docker-baseimage-kasmvnc#lossless).
|
||||
|
||||
# changelog
|
||||
changelogs:
|
||||
- { date: "18.03.23:", desc: "Rebase to KasmVNC base image." }
|
||||
- { date: "21.10.22:", desc: "Rebase to Alpine 3.16, migrate to s6v3." }
|
||||
- { date: "15.02.22:", desc: "Add build deps for discord." }
|
||||
- { date: "23.12.21:", desc: "Rebase to Alpine 3.15." }
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openbox_menu xmlns="http://openbox.org/3.4/menu">
|
||||
<menu id="root-menu" label="MENU">
|
||||
<item label="Pidgin" icon="/usr/share/icons/hicolor/48x48/apps/pidgin.png"><action name="Execute"><command>/usr/bin/pidgin</command></action></item>
|
||||
<item label="xterm" icon="/usr/share/pixmaps/xterm-color_48x48.xpm"><action name="Execute"><command>/usr/bin/xterm</command></action></item>
|
||||
<item label="Firefox" icon="/usr/share/icons/hicolor/48x48/apps/firefox.png"><action name="Execute"><command>/usr/bin/firefox</command></action></item>
|
||||
<item label="Reload OB"><action name="Reconfigure"/></item>
|
||||
<item label="Chromium" icon="/usr/share/icons/hicolor/48x48/apps/chromium.png"><action name="Execute"><command>/usr/bin/chromium-browser --password-store=basic --no-sandbox --ignore-gpu-blocklist --user-data-dir --no-first-run --simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT' --test-type</command></action></item>
|
||||
</menu>
|
||||
</openbox_menu>
|
||||
|
||||
@ -1,8 +0,0 @@
|
||||
#!/usr/bin/with-contenv bash
|
||||
|
||||
# default file copies first run
|
||||
if [[ ! -f /config/.config/openbox/menu.xml ]]; then
|
||||
mkdir -p /config/.config/openbox && \
|
||||
cp /defaults/menu.xml /config/.config/openbox/menu.xml && \
|
||||
chown -R abc:abc /config/.config
|
||||
fi
|
||||
@ -1 +0,0 @@
|
||||
oneshot
|
||||
@ -1 +0,0 @@
|
||||
/etc/s6-overlay/s6-rc.d/init-openboxcopy/run
|
||||
Loading…
x
Reference in New Issue
Block a user