mirror of
https://github.com/linuxserver/docker-heimdall.git
synced 2026-02-22 20:30:31 +09:00
Compare commits
57 Commits
developmen
...
developmen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a899d4f06 | ||
|
|
3a955f71ff | ||
|
|
b4b790f721 | ||
|
|
304b9c949b | ||
|
|
95aa03c53d | ||
|
|
22f248749b | ||
|
|
16ef6ef3cd | ||
|
|
6367458423 | ||
|
|
e0e7993919 | ||
|
|
a205cf8bb4 | ||
|
|
45e4f01314 | ||
|
|
340959ad0f | ||
|
|
0fe2f02d36 | ||
|
|
7dfb27ec2c | ||
|
|
20f4ad570c | ||
|
|
c0593971bd | ||
|
|
bb3a96f9ab | ||
|
|
da0a48dab1 | ||
|
|
32771ff107 | ||
|
|
3ea3d3df4c | ||
|
|
9be71b990b | ||
|
|
611156ebf0 | ||
|
|
cc09853655 | ||
|
|
fd225a8f9d | ||
|
|
3802c4c492 | ||
|
|
868d392d15 | ||
|
|
eff0168da5 | ||
|
|
71734199aa | ||
|
|
a178d0cec8 | ||
|
|
7565e4eca4 | ||
|
|
41250006aa | ||
|
|
81623bd408 | ||
|
|
a8a6ed5c64 | ||
|
|
010b576395 | ||
|
|
daf7781c96 | ||
|
|
393232aa81 | ||
|
|
e6d1f59628 | ||
|
|
f6bc88766e | ||
|
|
82dfea350e | ||
|
|
b4bb886594 | ||
|
|
932f62a5ac | ||
|
|
8e2e6a940b | ||
|
|
864c5ea2a7 | ||
|
|
9d3824ec1b | ||
|
|
047c671b1b | ||
|
|
34a73c7c9d | ||
|
|
884eeff969 | ||
|
|
fd327c7440 | ||
|
|
1fe9dd7105 | ||
|
|
018d6fb242 | ||
|
|
17546d3448 | ||
|
|
42f2d5fe1c | ||
|
|
525385d861 | ||
|
|
83ec5dcf02 | ||
|
|
5c86bc3f36 | ||
|
|
f4a007294b | ||
|
|
1b537c40f4 |
@@ -1,4 +1,4 @@
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.12
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.14
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@@ -17,8 +17,7 @@ RUN \
|
||||
php7-ctype \
|
||||
php7-pdo_sqlite \
|
||||
php7-tokenizer \
|
||||
php7-zip \
|
||||
tar && \
|
||||
php7-zip && \
|
||||
echo "**** install heimdall ****" && \
|
||||
mkdir -p \
|
||||
/heimdall && \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.12
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.14
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@@ -17,8 +17,7 @@ RUN \
|
||||
php7-ctype \
|
||||
php7-pdo_sqlite \
|
||||
php7-tokenizer \
|
||||
php7-zip \
|
||||
tar && \
|
||||
php7-zip && \
|
||||
echo "**** install heimdall ****" && \
|
||||
mkdir -p \
|
||||
/heimdall && \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.12
|
||||
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.14
|
||||
|
||||
# set version label
|
||||
ARG BUILD_DATE
|
||||
@@ -17,8 +17,7 @@ RUN \
|
||||
php7-ctype \
|
||||
php7-pdo_sqlite \
|
||||
php7-tokenizer \
|
||||
php7-zip \
|
||||
tar && \
|
||||
php7-zip && \
|
||||
echo "**** install heimdall ****" && \
|
||||
mkdir -p \
|
||||
/heimdall && \
|
||||
|
||||
137
Jenkinsfile
vendored
137
Jenkinsfile
vendored
@@ -16,6 +16,7 @@ pipeline {
|
||||
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
|
||||
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
|
||||
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
|
||||
SCARF_TOKEN=credentials('scarf_api_key')
|
||||
EXT_GIT_BRANCH = 'master'
|
||||
EXT_USER = 'linuxserver'
|
||||
EXT_REPO = 'Heimdall'
|
||||
@@ -126,6 +127,30 @@ pipeline {
|
||||
env.EXT_RELEASE_CLEAN = sh(
|
||||
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
|
||||
returnStdout: true).trim()
|
||||
|
||||
def semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)\.(\d+)/
|
||||
if (semver.find()) {
|
||||
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
|
||||
} else {
|
||||
semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)(?:\.(\d+))?(.*)/
|
||||
if (semver.find()) {
|
||||
if (semver[0][3]) {
|
||||
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
|
||||
} else if (!semver[0][3] && !semver[0][4]) {
|
||||
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${(new Date()).format('YYYYMMdd')}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (env.SEMVER != null) {
|
||||
if (BRANCH_NAME != "master" && BRANCH_NAME != "main") {
|
||||
env.SEMVER = "${env.SEMVER}-${BRANCH_NAME}"
|
||||
}
|
||||
println("SEMVER: ${env.SEMVER}")
|
||||
} else {
|
||||
println("No SEMVER detected")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -140,6 +165,7 @@ pipeline {
|
||||
env.IMAGE = env.DOCKERHUB_IMAGE
|
||||
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME
|
||||
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-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||
} else {
|
||||
@@ -162,6 +188,7 @@ pipeline {
|
||||
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
|
||||
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME
|
||||
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-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||
} else {
|
||||
@@ -184,6 +211,7 @@ pipeline {
|
||||
env.IMAGE = env.PR_DOCKERHUB_IMAGE
|
||||
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME
|
||||
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-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
|
||||
} else {
|
||||
@@ -325,9 +353,11 @@ pipeline {
|
||||
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
|
||||
cd ${TEMPDIR}/unraid/templates/
|
||||
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
|
||||
echo "Image is on the ignore list, removing Unraid template"
|
||||
git rm unraid/${CONTAINER_NAME}.xml || :
|
||||
git commit -m 'Bot Removing Deprecated Unraid Template' || :
|
||||
echo "Image is on the ignore list, marking Unraid template as deprecated"
|
||||
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
|
||||
git add -u unraid/${CONTAINER_NAME}.xml
|
||||
git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || :
|
||||
git commit -m 'Bot Moving Deprecated Unraid Template' || :
|
||||
else
|
||||
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
|
||||
git add unraid/${CONTAINER_NAME}.xml
|
||||
@@ -379,13 +409,45 @@ pipeline {
|
||||
"visibility":"public"}' '''
|
||||
}
|
||||
}
|
||||
/* #######################
|
||||
Scarf.sh package registry
|
||||
####################### */
|
||||
// Add package to Scarf.sh and set permissions
|
||||
stage("Scarf.sh package registry"){
|
||||
when {
|
||||
branch "development"
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps{
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/heimdall") | .uuid')
|
||||
if [ -z "${PACKAGE_UUID}" ]; then
|
||||
echo "Adding package to Scarf.sh"
|
||||
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
|
||||
-H "Authorization: Bearer ${SCARF_TOKEN}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"name":"linuxserver/heimdall",\
|
||||
"shortDescription":"example description",\
|
||||
"libraryType":"docker",\
|
||||
"website":"https://github.com/linuxserver/docker-heimdall",\
|
||||
"backendUrl":"https://ghcr.io/linuxserver/heimdall",\
|
||||
"publicUrl":"https://lscr.io/linuxserver/heimdall"}' || :
|
||||
else
|
||||
echo "Package already exists on Scarf.sh"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
/* ###############
|
||||
Build Container
|
||||
############### */
|
||||
// Build Docker container for push to LS Repo
|
||||
stage('Build-Single') {
|
||||
when {
|
||||
environment name: 'MULTIARCH', value: 'false'
|
||||
expression {
|
||||
env.MULTIARCH == 'false' || params.PACKAGE_CHECK == 'true'
|
||||
}
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps {
|
||||
@@ -410,7 +472,10 @@ pipeline {
|
||||
// Build MultiArch Docker containers for push to LS Repo
|
||||
stage('Build-Multi') {
|
||||
when {
|
||||
environment name: 'MULTIARCH', value: 'true'
|
||||
allOf {
|
||||
environment name: 'MULTIARCH', value: 'true'
|
||||
expression { params.PACKAGE_CHECK == 'false' }
|
||||
}
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
parallel {
|
||||
@@ -515,7 +580,7 @@ pipeline {
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
TEMPDIR=$(mktemp -d)
|
||||
if [ "${MULTIARCH}" == "true" ]; then
|
||||
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
|
||||
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
|
||||
else
|
||||
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
|
||||
@@ -576,7 +641,7 @@ pipeline {
|
||||
steps {
|
||||
sh '''#! /bin/bash
|
||||
echo "Packages were updated. Cleaning up the image and exiting."
|
||||
if [ "${MULTIARCH}" == "true" ]; then
|
||||
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
|
||||
docker rmi ${IMAGE}:amd64-${META_TAG}
|
||||
else
|
||||
docker rmi ${IMAGE}:${META_TAG}
|
||||
@@ -600,7 +665,7 @@ pipeline {
|
||||
steps {
|
||||
sh '''#! /bin/bash
|
||||
echo "There are no package updates. Cleaning up the image and exiting."
|
||||
if [ "${MULTIARCH}" == "true" ]; then
|
||||
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
|
||||
docker rmi ${IMAGE}:amd64-${META_TAG}
|
||||
else
|
||||
docker rmi ${IMAGE}:${META_TAG}
|
||||
@@ -675,6 +740,12 @@ pipeline {
|
||||
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
|
||||
usernameVariable: 'DOCKERUSER',
|
||||
passwordVariable: 'DOCKERPASS'
|
||||
],
|
||||
[
|
||||
$class: 'UsernamePasswordMultiBinding',
|
||||
credentialsId: 'Quay.io-Robot',
|
||||
usernameVariable: 'QUAYUSER',
|
||||
passwordVariable: 'QUAYPASS'
|
||||
]
|
||||
]) {
|
||||
retry(5) {
|
||||
@@ -683,22 +754,32 @@ pipeline {
|
||||
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
||||
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
|
||||
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
|
||||
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
|
||||
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
||||
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
|
||||
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
|
||||
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:development
|
||||
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
|
||||
fi
|
||||
docker push ${PUSHIMAGE}:development
|
||||
docker push ${PUSHIMAGE}:${META_TAG}
|
||||
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker push ${PUSHIMAGE}:${SEMVER}
|
||||
fi
|
||||
done
|
||||
'''
|
||||
}
|
||||
sh '''#! /bin/bash
|
||||
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
|
||||
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
|
||||
docker rmi \
|
||||
${DELETEIMAGE}:${META_TAG} \
|
||||
${DELETEIMAGE}:${EXT_RELEASE_TAG} \
|
||||
${DELETEIMAGE}:development || :
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker rmi ${DELETEIMAGE}:${SEMVER} || :
|
||||
fi
|
||||
done
|
||||
'''
|
||||
}
|
||||
@@ -717,6 +798,12 @@ pipeline {
|
||||
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
|
||||
usernameVariable: 'DOCKERUSER',
|
||||
passwordVariable: 'DOCKERPASS'
|
||||
],
|
||||
[
|
||||
$class: 'UsernamePasswordMultiBinding',
|
||||
credentialsId: 'Quay.io-Robot',
|
||||
usernameVariable: 'QUAYUSER',
|
||||
passwordVariable: 'QUAYPASS'
|
||||
]
|
||||
]) {
|
||||
retry(5) {
|
||||
@@ -725,13 +812,14 @@ pipeline {
|
||||
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
||||
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
|
||||
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 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
|
||||
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}"; do
|
||||
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
|
||||
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
|
||||
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
|
||||
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||
@@ -741,6 +829,11 @@ pipeline {
|
||||
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
||||
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
|
||||
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}:arm32v7-${META_TAG}
|
||||
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||
@@ -750,6 +843,11 @@ pipeline {
|
||||
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
||||
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
|
||||
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}:development || :
|
||||
docker manifest create ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm32v7-development ${MANIFESTIMAGE}:arm64v8-development
|
||||
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm32v7-development --os linux --arch arm
|
||||
@@ -762,14 +860,23 @@ pipeline {
|
||||
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 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 annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
|
||||
fi
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:development
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
|
||||
fi
|
||||
done
|
||||
'''
|
||||
}
|
||||
sh '''#! /bin/bash
|
||||
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
|
||||
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
|
||||
docker rmi \
|
||||
${DELETEIMAGE}:amd64-${META_TAG} \
|
||||
${DELETEIMAGE}:amd64-development \
|
||||
@@ -780,6 +887,12 @@ pipeline {
|
||||
${DELETEIMAGE}:arm64v8-${META_TAG} \
|
||||
${DELETEIMAGE}:arm64v8-development \
|
||||
${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} \
|
||||
|
||||
28
README.md
28
README.md
@@ -29,10 +29,12 @@ Find us at:
|
||||
|
||||
# [linuxserver/heimdall](https://github.com/linuxserver/docker-heimdall)
|
||||
|
||||
[](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fheimdall)
|
||||
[](https://github.com/linuxserver/docker-heimdall)
|
||||
[](https://github.com/linuxserver/docker-heimdall/releases)
|
||||
[](https://github.com/linuxserver/docker-heimdall/packages)
|
||||
[](https://gitlab.com/linuxserver.io/docker-heimdall/container_registry)
|
||||
[](https://quay.io/repository/linuxserver.io/heimdall)
|
||||
[](https://hub.docker.com/r/linuxserver/heimdall)
|
||||
[](https://hub.docker.com/r/linuxserver/heimdall)
|
||||
[](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/development/)
|
||||
@@ -46,17 +48,17 @@ Why not use it as your browser start page? It even has the ability to include a
|
||||
|
||||
## Supported Architectures
|
||||
|
||||
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
|
||||
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
|
||||
|
||||
Simply pulling `ghcr.io/linuxserver/heimdall` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
|
||||
Simply pulling `lscr.io/linuxserver/heimdall:development` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
|
||||
|
||||
The architectures supported by this image are:
|
||||
|
||||
| Architecture | Tag |
|
||||
| :----: | --- |
|
||||
| x86-64 | amd64-latest |
|
||||
| arm64 | arm64v8-latest |
|
||||
| armhf | arm32v7-latest |
|
||||
| Architecture | Available | Tag |
|
||||
| :----: | :----: | ---- |
|
||||
| x86-64 | ✅ | amd64-\<version tag\> |
|
||||
| arm64 | ✅ | arm64v8-\<version tag\> |
|
||||
| armhf| ✅ | arm32v7-\<version tag\> |
|
||||
|
||||
## Application Setup
|
||||
|
||||
@@ -78,7 +80,7 @@ Here are some example snippets to help you get started creating a container.
|
||||
version: "2.1"
|
||||
services:
|
||||
heimdall:
|
||||
image: ghcr.io/linuxserver/heimdall
|
||||
image: lscr.io/linuxserver/heimdall:development
|
||||
container_name: heimdall
|
||||
environment:
|
||||
- PUID=1000
|
||||
@@ -104,7 +106,7 @@ docker run -d \
|
||||
-p 443:443 \
|
||||
-v </path/to/appdata/config>:/config \
|
||||
--restart unless-stopped \
|
||||
ghcr.io/linuxserver/heimdall
|
||||
lscr.io/linuxserver/heimdall:development
|
||||
```
|
||||
|
||||
Using tags, you can switch between the stable releases of Heimdall and the master branch. No tag is required for the latest stable release.
|
||||
@@ -168,7 +170,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
|
||||
* container version number
|
||||
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' heimdall`
|
||||
* image version number
|
||||
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' ghcr.io/linuxserver/heimdall`
|
||||
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/heimdall:development`
|
||||
|
||||
## Updating Info
|
||||
|
||||
@@ -186,7 +188,7 @@ Below are the instructions for updating containers:
|
||||
|
||||
### Via Docker Run
|
||||
|
||||
* Update the image: `docker pull ghcr.io/linuxserver/heimdall`
|
||||
* Update the image: `docker pull lscr.io/linuxserver/heimdall:development`
|
||||
* Stop the running container: `docker stop heimdall`
|
||||
* Delete the container: `docker rm heimdall`
|
||||
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
|
||||
@@ -221,7 +223,7 @@ cd docker-heimdall
|
||||
docker build \
|
||||
--no-cache \
|
||||
--pull \
|
||||
-t ghcr.io/linuxserver/heimdall:latest .
|
||||
-t lscr.io/linuxserver/heimdall:development .
|
||||
```
|
||||
|
||||
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
|
||||
@@ -234,6 +236,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## Versions
|
||||
|
||||
* **13.03.21:** - Make searchproviders.yaml user configurable.
|
||||
* **11.03.21:** - Rebase to alpine 3.14.
|
||||
* **10.02.21:** - Revert to alpine 3.12 as php 7.4 broke laravel.
|
||||
* **10.02.21:** - Rebasing to alpine 3.13.
|
||||
* **01.06.20:** - Rebasing to alpine 3.12.
|
||||
|
||||
@@ -1,71 +1,75 @@
|
||||
alpine-baselayout-3.2.0-r7
|
||||
alpine-keys-2.2-r0
|
||||
apache2-utils-2.4.48-r0
|
||||
apk-tools-2.10.8-r0
|
||||
apr-1.7.0-r0
|
||||
apr-util-1.6.1-r6
|
||||
alpine-baselayout-3.2.0-r16
|
||||
alpine-keys-2.4-r0
|
||||
apache2-utils-2.4.54-r0
|
||||
apk-tools-2.12.7-r0
|
||||
apr-1.7.0-r1
|
||||
apr-util-1.6.1-r7
|
||||
argon2-libs-20190702-r1
|
||||
bash-5.0.17-r0
|
||||
busybox-1.31.1-r20
|
||||
ca-certificates-20191127-r4
|
||||
ca-certificates-bundle-20191127-r4
|
||||
coreutils-8.32-r0
|
||||
curl-7.78.0-r0
|
||||
expat-2.2.9-r1
|
||||
git-2.26.3-r0
|
||||
bash-5.1.16-r0
|
||||
brotli-libs-1.0.9-r5
|
||||
busybox-1.33.1-r8
|
||||
ca-certificates-20220614-r0
|
||||
ca-certificates-bundle-20220614-r0
|
||||
coreutils-8.32-r2
|
||||
curl-7.79.1-r2
|
||||
expat-2.4.7-r0
|
||||
git-2.32.3-r0
|
||||
libacl-2.2.53-r0
|
||||
libattr-2.4.48-r0
|
||||
libattr-2.5.1-r0
|
||||
libc-utils-0.7.2-r3
|
||||
libcrypto1.1-1.1.1k-r0
|
||||
libcurl-7.78.0-r0
|
||||
libedit-20191231.3.1-r0
|
||||
libintl-0.20.2-r0
|
||||
libmagic-5.38-r0
|
||||
libproc-3.3.16-r0
|
||||
libressl3.1-libcrypto-3.1.2-r0
|
||||
libressl3.1-libssl-3.1.2-r0
|
||||
libssl1.1-1.1.1k-r0
|
||||
libtls-standalone-2.9.1-r1
|
||||
libuuid-2.35.2-r0
|
||||
libxml2-2.9.12-r0
|
||||
libzip-1.6.1-r1
|
||||
linux-pam-1.3.1-r4
|
||||
logrotate-3.16.0-r0
|
||||
musl-1.1.24-r10
|
||||
musl-utils-1.1.24-r10
|
||||
nano-4.9.3-r0
|
||||
ncurses-libs-6.2_p20200523-r0
|
||||
ncurses-terminfo-base-6.2_p20200523-r0
|
||||
nghttp2-libs-1.41.0-r0
|
||||
nginx-1.18.0-r3
|
||||
openssl-1.1.1k-r0
|
||||
libcrypto1.1-1.1.1q-r0
|
||||
libcurl-7.79.1-r2
|
||||
libedit-20210216.3.1-r0
|
||||
libintl-0.21-r0
|
||||
libmagic-5.40-r1
|
||||
libproc-3.3.17-r0
|
||||
libressl3.3-libcrypto-3.3.6-r0
|
||||
libressl3.3-libssl-3.3.6-r0
|
||||
libretls-3.3.3p1-r3
|
||||
libssl1.1-1.1.1q-r0
|
||||
libuuid-2.37.4-r0
|
||||
libxml2-2.9.14-r0
|
||||
libzip-1.7.3-r2
|
||||
linux-pam-1.5.1-r1
|
||||
logrotate-3.18.1-r3
|
||||
musl-1.2.2-r3
|
||||
musl-utils-1.2.2-r3
|
||||
nano-5.7-r2
|
||||
ncurses-libs-6.2_p20210612-r1
|
||||
ncurses-terminfo-base-6.2_p20210612-r1
|
||||
nghttp2-libs-1.43.0-r0
|
||||
nginx-1.20.2-r1
|
||||
oniguruma-6.9.7.1-r0
|
||||
openssl-1.1.1q-r0
|
||||
pcre-8.44-r0
|
||||
pcre2-10.35-r0
|
||||
php7-7.3.29-r0
|
||||
php7-common-7.3.29-r0
|
||||
php7-ctype-7.3.29-r0
|
||||
php7-fileinfo-7.3.29-r0
|
||||
php7-fpm-7.3.29-r0
|
||||
php7-json-7.3.29-r0
|
||||
php7-mbstring-7.3.29-r0
|
||||
php7-openssl-7.3.29-r0
|
||||
php7-pdo-7.3.29-r0
|
||||
php7-pdo_sqlite-7.3.29-r0
|
||||
php7-session-7.3.29-r0
|
||||
php7-simplexml-7.3.29-r0
|
||||
php7-tokenizer-7.3.29-r0
|
||||
php7-xml-7.3.29-r0
|
||||
php7-xmlwriter-7.3.29-r0
|
||||
php7-zip-7.3.29-r0
|
||||
popt-1.16-r7
|
||||
procps-3.3.16-r0
|
||||
readline-8.0.4-r0
|
||||
scanelf-1.2.6-r0
|
||||
pcre2-10.36-r1
|
||||
php7-7.4.26-r0
|
||||
php7-common-7.4.26-r0
|
||||
php7-ctype-7.4.26-r0
|
||||
php7-fileinfo-7.4.26-r0
|
||||
php7-fpm-7.4.26-r0
|
||||
php7-json-7.4.26-r0
|
||||
php7-mbstring-7.4.26-r0
|
||||
php7-openssl-7.4.26-r0
|
||||
php7-pdo-7.4.26-r0
|
||||
php7-pdo_sqlite-7.4.26-r0
|
||||
php7-session-7.4.26-r0
|
||||
php7-simplexml-7.4.26-r0
|
||||
php7-tokenizer-7.4.26-r0
|
||||
php7-xml-7.4.26-r0
|
||||
php7-xmlwriter-7.4.26-r0
|
||||
php7-zip-7.4.26-r0
|
||||
popt-1.18-r0
|
||||
procps-3.3.17-r0
|
||||
readline-8.1.0-r0
|
||||
s6-ipcserver-2.10.0.3-r0
|
||||
scanelf-1.3.2-r0
|
||||
shadow-4.8.1-r0
|
||||
sqlite-libs-3.32.1-r1
|
||||
ssl_client-1.31.1-r20
|
||||
tar-1.32-r2
|
||||
tzdata-2021a-r0
|
||||
xz-5.2.5-r0
|
||||
xz-libs-5.2.5-r0
|
||||
zlib-1.2.11-r3
|
||||
skalibs-2.10.0.3-r0
|
||||
sqlite-libs-3.35.5-r0
|
||||
ssl_client-1.33.1-r8
|
||||
tzdata-2022a-r0
|
||||
utmps-0.1.0.2-r0
|
||||
xz-5.2.5-r1
|
||||
xz-libs-5.2.5-r1
|
||||
zlib-1.2.12-r2
|
||||
|
||||
@@ -52,6 +52,8 @@ app_setup_block: |
|
||||
|
||||
# changelog
|
||||
changelogs:
|
||||
- { date: "13.03.21:", desc: "Make searchproviders.yaml user configurable." }
|
||||
- { date: "11.03.21:", desc: "Rebase to alpine 3.14." }
|
||||
- { date: "10.02.21:", desc: "Revert to alpine 3.12 as php 7.4 broke laravel." }
|
||||
- { date: "10.02.21:", desc: "Rebasing to alpine 3.13." }
|
||||
- { date: "01.06.20:", desc: "Rebasing to alpine 3.12." }
|
||||
|
||||
@@ -15,6 +15,7 @@ mkdir -p \
|
||||
echo -e '\n# Heimdall user authorization\nfastcgi_param PHP_AUTH_USER $remote_user;\nfastcgi_param PHP_AUTH_PW $http_authorization;' >> \
|
||||
/etc/nginx/fastcgi_params && \
|
||||
rm -rf /heimdall && \
|
||||
cp /var/www/localhost/heimdall/storage/app/searchproviders.yaml /var/www/localhost/heimdall/storage/app/searchproviders.yaml.orig && \
|
||||
chown -R abc:abc /var/www/localhost/heimdall
|
||||
|
||||
# create symlinks
|
||||
@@ -43,6 +44,11 @@ done
|
||||
cp /var/www/localhost/heimdall/.env.example /config/www/.env && \
|
||||
echo "generating app key"
|
||||
php /var/www/localhost/heimdall/artisan key:generate
|
||||
# copy searchproviders if not exists and symlink
|
||||
[[ ! -f /config/www/searchproviders.yaml ]] && \
|
||||
cp /var/www/localhost/heimdall/storage/app/searchproviders.yaml.orig /config/www/searchproviders.yaml
|
||||
rm -rf /var/www/localhost/heimdall/storage/app/searchproviders.yaml
|
||||
ln -s /config/www/searchproviders.yaml /var/www/localhost/heimdall/storage/app/searchproviders.yaml
|
||||
# set queue driver to database
|
||||
sed -i 's/QUEUE_DRIVER=sync/QUEUE_DRIVER=database/' /config/www/.env
|
||||
|
||||
|
||||
Reference in New Issue
Block a user