Skip to content

Commit 9f10133

Browse files
authored
Merge pull request #25 from linuxserver/3.18
Rebase to Alpine 3.18, deprecate armhf
2 parents a05a69d + c5f9beb commit 9f10133

File tree

8 files changed

+45
-135
lines changed

8 files changed

+45
-135
lines changed

Diff for: .github/ISSUE_TEMPLATE/issue.bug.yml

-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ body:
5353
options:
5454
- x86-64
5555
- arm64
56-
- armhf
5756
validations:
5857
required: true
5958
- type: textarea

Diff for: Dockerfile

+12-13
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# syntax=docker/dockerfile:1
22

3-
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.17
3+
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.18
44

55
# set version label
66
ARG BUILD_DATE
@@ -12,16 +12,15 @@ LABEL maintainer="gilbn"
1212
RUN \
1313
echo "**** install runtime packages ****" && \
1414
apk add --no-cache \
15-
php81-sqlite3 \
16-
php81-mysqli \
17-
php81-pdo_mysql \
18-
php81-pdo_sqlite \
19-
php81-gd \
20-
php81-zip \
21-
php81-ftp \
22-
php81-ldap \
23-
php81-tokenizer \
24-
php81-intl && \
15+
php82-ftp \
16+
php82-gd \
17+
php82-intl \
18+
php82-ldap \
19+
php82-mysqli \
20+
php82-pdo_mysql \
21+
php82-pdo_sqlite \
22+
php82-sqlite3 \
23+
php82-tokenizer && \
2524
echo "**** install xbackbone ****" && \
2625
mkdir -p /app/www/public && \
2726
if [ -z ${XBACKBONE_RELEASE+x} ]; then \
@@ -34,8 +33,8 @@ RUN \
3433
unzip -q -o /tmp/xbackbone.zip -d /app/www/public/ && \
3534
echo "**** cleanup ****" && \
3635
rm -rf \
37-
/root/.cache \
38-
/tmp/*
36+
/tmp/* \
37+
$HOME/.cache
3938

4039
# copy local files
4140
COPY root/ /

Diff for: Dockerfile.aarch64

+12-13
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# syntax=docker/dockerfile:1
22

3-
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.17
3+
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.18
44

55
# set version label
66
ARG BUILD_DATE
@@ -12,16 +12,15 @@ LABEL maintainer="gilbn"
1212
RUN \
1313
echo "**** install runtime packages ****" && \
1414
apk add --no-cache \
15-
php81-sqlite3 \
16-
php81-mysqli \
17-
php81-pdo_mysql \
18-
php81-pdo_sqlite \
19-
php81-gd \
20-
php81-zip \
21-
php81-ftp \
22-
php81-ldap \
23-
php81-tokenizer \
24-
php81-intl && \
15+
php82-ftp \
16+
php82-gd \
17+
php82-intl \
18+
php82-ldap \
19+
php82-mysqli \
20+
php82-pdo_mysql \
21+
php82-pdo_sqlite \
22+
php82-sqlite3 \
23+
php82-tokenizer && \
2524
echo "**** install xbackbone ****" && \
2625
mkdir -p /app/www/public && \
2726
if [ -z ${XBACKBONE_RELEASE+x} ]; then \
@@ -34,8 +33,8 @@ RUN \
3433
unzip -q -o /tmp/xbackbone.zip -d /app/www/public/ && \
3534
echo "**** cleanup ****" && \
3635
rm -rf \
37-
/root/.cache \
38-
/tmp/*
36+
/tmp/* \
37+
$HOME/.cache
3938

4039
# copy local files
4140
COPY root/ /

Diff for: Dockerfile.armhf

-45
This file was deleted.

Diff for: Jenkinsfile

+17-61
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ pipeline {
173173
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
174174
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
175175
if (env.MULTIARCH == 'true') {
176-
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
176+
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
177177
} else {
178178
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
179179
}
@@ -196,7 +196,7 @@ pipeline {
196196
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
197197
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
198198
if (env.MULTIARCH == 'true') {
199-
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
199+
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
200200
} else {
201201
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
202202
}
@@ -219,7 +219,7 @@ pipeline {
219219
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
220220
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
221221
if (env.MULTIARCH == 'true') {
222-
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
222+
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
223223
} else {
224224
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
225225
}
@@ -525,44 +525,6 @@ pipeline {
525525
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
526526
}
527527
}
528-
stage('Build ARMHF') {
529-
agent {
530-
label 'ARMHF'
531-
}
532-
steps {
533-
echo "Running on node: ${NODE_NAME}"
534-
echo 'Logging into Github'
535-
sh '''#! /bin/bash
536-
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
537-
'''
538-
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf"
539-
sh "docker buildx build \
540-
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
541-
--label \"org.opencontainers.image.authors=linuxserver.io\" \
542-
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-xbackbone/packages\" \
543-
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-xbackbone\" \
544-
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-xbackbone\" \
545-
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
546-
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
547-
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
548-
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
549-
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
550-
--label \"org.opencontainers.image.title=Xbackbone\" \
551-
--label \"org.opencontainers.image.description=[Xbackbone](https://github.com/SergiX44/XBackBone) is a simple, self-hosted, lightweight PHP file manager that support the instant sharing tool ShareX and *NIX systems. It supports uploading and displaying images, GIF, video, code, formatted text, and file downloading and uploading. Also have a web UI with multi user management, past uploads history and search support. \" \
552-
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \
553-
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
554-
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
555-
retry(5) {
556-
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
557-
}
558-
sh '''#! /bin/bash
559-
containers=$(docker ps -aq)
560-
if [[ -n "${containers}" ]]; then
561-
docker stop ${containers}
562-
fi
563-
docker system prune -af --volumes || : '''
564-
}
565-
}
566528
stage('Build ARM64') {
567529
agent {
568530
label 'ARM64'
@@ -703,9 +665,7 @@ pipeline {
703665
set -e
704666
docker pull ghcr.io/linuxserver/ci:latest
705667
if [ "${MULTIARCH}" == "true" ]; then
706-
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
707668
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
708-
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
709669
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
710670
fi
711671
docker run --rm \
@@ -808,58 +768,54 @@ pipeline {
808768
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
809769
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
810770
if [ "${CI}" == "false" ]; then
811-
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
812-
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
813771
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
814772
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
815773
fi
816774
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
817775
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
818776
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-latest
819777
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
820-
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
821-
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-latest
822-
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
823778
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
824779
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-latest
825780
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
826781
if [ -n "${SEMVER}" ]; then
827782
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
828-
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
829783
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
830784
fi
831785
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
832786
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
833787
docker push ${MANIFESTIMAGE}:amd64-latest
834-
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
835-
docker push ${MANIFESTIMAGE}:arm32v7-latest
836-
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
837788
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
838789
docker push ${MANIFESTIMAGE}:arm64v8-latest
839790
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
840791
if [ -n "${SEMVER}" ]; then
841792
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
842-
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
843793
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
844794
fi
845795
docker manifest push --purge ${MANIFESTIMAGE}:latest || :
846-
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:arm64v8-latest
847-
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm32v7-latest --os linux --arch arm
796+
docker manifest create ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest
848797
docker manifest annotate ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8
849798
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
850-
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
851-
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
799+
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
852800
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
853801
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
854-
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
855-
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
802+
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
856803
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
857804
if [ -n "${SEMVER}" ]; then
858805
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
859-
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
860-
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
806+
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
861807
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
862808
fi
809+
token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
810+
digest=$(curl -s \
811+
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
812+
--header "Authorization: Bearer ${token}" \
813+
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-latest")
814+
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
815+
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest || :
816+
docker manifest create ${MANIFESTIMAGE}:arm32v7-latest ${MANIFESTIMAGE}:amd64-latest
817+
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-latest
818+
fi
863819
docker manifest push --purge ${MANIFESTIMAGE}:latest
864820
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
865821
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}

Diff for: README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ The architectures supported by this image are:
5656
| :----: | :----: | ---- |
5757
| x86-64 || amd64-\<version tag\> |
5858
| arm64 || arm64v8-\<version tag\> |
59-
| armhf | | arm32v7-\<version tag\> |
59+
| armhf | | |
6060

6161
## Application Setup
6262

@@ -236,6 +236,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
236236

237237
## Versions
238238

239+
* **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.
239240
* **13.04.23:** - Move ssl.conf include to default.conf.
240241
* **19.01.23:** - Rebase to alpine 3.17 with php8.1.
241242
* **04.11.22:** - Rebase to Alpine 3.16, migrate to s6v3.

Diff for: jenkins-vars.yml

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ external_type: github_stable
66
release_type: stable
77
release_tag: latest
88
ls_branch: main
9+
build_armhf: false
910
repo_vars:
1011
- EXT_GIT_BRANCH = 'master'
1112
- EXT_USER = 'SergiX44'

Diff for: readme-vars.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_
1212
available_architectures:
1313
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
1414
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
15-
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
1615

1716
# container parameters
1817
param_container_name: "{{ project_name }}"
@@ -46,6 +45,7 @@ app_setup_block: |
4645
4746
# changelog
4847
changelogs:
48+
- { date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf." }
4949
- { date: "13.04.23:", desc: "Move ssl.conf include to default.conf." }
5050
- { date: "19.01.23:", desc: "Rebase to alpine 3.17 with php8.1." }
5151
- { date: "04.11.22:", desc: "Rebase to Alpine 3.16, migrate to s6v3." }

0 commit comments

Comments
 (0)