mirror of
https://github.com/linuxserver/docker-heimdall.git
synced 2026-04-19 08:05:48 +09:00
Compare commits
16 Commits
2.1.13-pkg
...
2.1.13-ls4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c4c57fcaf9 | ||
|
|
0c0663a5ab | ||
|
|
e73bef69c8 | ||
|
|
cadf51061f | ||
|
|
723c0c7af0 | ||
|
|
a157f54f20 | ||
|
|
5ad4d9489f | ||
|
|
c3b57f9aa2 | ||
|
|
2ce4be8c28 | ||
|
|
54e59d820e | ||
|
|
b0797041a2 | ||
|
|
2552eaa416 | ||
|
|
5e011ac2da | ||
|
|
792e4c5a61 | ||
|
|
c69e0361ee | ||
|
|
8f8288a46f |
12
Dockerfile
12
Dockerfile
@@ -1,4 +1,4 @@
|
|||||||
FROM lsiobase/alpine.nginx:3.9
|
FROM lsiobase/nginx:3.9
|
||||||
|
|
||||||
# set version label
|
# set version label
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
@@ -22,20 +22,14 @@ RUN \
|
|||||||
tar && \
|
tar && \
|
||||||
echo "**** install heimdall ****" && \
|
echo "**** install heimdall ****" && \
|
||||||
mkdir -p \
|
mkdir -p \
|
||||||
/var/www/localhost/heimdall && \
|
/heimdall && \
|
||||||
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
|
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
|
||||||
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" \
|
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" \
|
||||||
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
|
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
|
||||||
fi && \
|
fi && \
|
||||||
curl -o \
|
curl -o \
|
||||||
/tmp/heimdall.tar.gz -L \
|
/heimdall/heimdall.tar.gz -L \
|
||||||
"https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \
|
"https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \
|
||||||
tar xf \
|
|
||||||
/tmp/heimdall.tar.gz -C \
|
|
||||||
/var/www/localhost/heimdall --strip-components=1 && \
|
|
||||||
echo "**** configure nginx ****" && \
|
|
||||||
echo -e '\n# Heimdall user authorization\nfastcgi_param PHP_AUTH_USER $remote_user;\nfastcgi_param PHP_AUTH_PW $http_authorization;' >> \
|
|
||||||
/etc/nginx/fastcgi_params && \
|
|
||||||
echo "**** cleanup ****" && \
|
echo "**** cleanup ****" && \
|
||||||
rm -rf \
|
rm -rf \
|
||||||
/tmp/*
|
/tmp/*
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
FROM lsiobase/alpine.nginx.arm64:3.9
|
FROM lsiobase/nginx:arm64v8-3.9
|
||||||
|
|
||||||
# Add qemu to build on x86_64 systems
|
|
||||||
COPY qemu-aarch64-static /usr/bin
|
|
||||||
|
|
||||||
# set version label
|
# set version label
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
@@ -25,20 +22,14 @@ RUN \
|
|||||||
tar && \
|
tar && \
|
||||||
echo "**** install heimdall ****" && \
|
echo "**** install heimdall ****" && \
|
||||||
mkdir -p \
|
mkdir -p \
|
||||||
/var/www/localhost/heimdall && \
|
/heimdall && \
|
||||||
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
|
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
|
||||||
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" \
|
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" \
|
||||||
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
|
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
|
||||||
fi && \
|
fi && \
|
||||||
curl -o \
|
curl -o \
|
||||||
/tmp/heimdall.tar.gz -L \
|
/heimdall/heimdall.tar.gz -L \
|
||||||
"https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \
|
"https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \
|
||||||
tar xf \
|
|
||||||
/tmp/heimdall.tar.gz -C \
|
|
||||||
/var/www/localhost/heimdall --strip-components=1 && \
|
|
||||||
echo "**** configure nginx ****" && \
|
|
||||||
echo -e '\n# Heimdall user authorization\nfastcgi_param PHP_AUTH_USER $remote_user;\nfastcgi_param PHP_AUTH_PW $http_authorization;' >> \
|
|
||||||
/etc/nginx/fastcgi_params && \
|
|
||||||
echo "**** cleanup ****" && \
|
echo "**** cleanup ****" && \
|
||||||
rm -rf \
|
rm -rf \
|
||||||
/tmp/*
|
/tmp/*
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
FROM lsiobase/alpine.nginx.armhf:3.9
|
FROM lsiobase/nginx:arm32v7-3.9
|
||||||
|
|
||||||
# Add qemu to build on x86_64 systems
|
|
||||||
COPY qemu-arm-static /usr/bin
|
|
||||||
|
|
||||||
# set version label
|
# set version label
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
@@ -25,20 +22,14 @@ RUN \
|
|||||||
tar && \
|
tar && \
|
||||||
echo "**** install heimdall ****" && \
|
echo "**** install heimdall ****" && \
|
||||||
mkdir -p \
|
mkdir -p \
|
||||||
/var/www/localhost/heimdall && \
|
/heimdall && \
|
||||||
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
|
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
|
||||||
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" \
|
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/releases/latest" \
|
||||||
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
|
| awk '/tag_name/{print $4;exit}' FS='[""]'); \
|
||||||
fi && \
|
fi && \
|
||||||
curl -o \
|
curl -o \
|
||||||
/tmp/heimdall.tar.gz -L \
|
/heimdall/heimdall.tar.gz -L \
|
||||||
"https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \
|
"https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \
|
||||||
tar xf \
|
|
||||||
/tmp/heimdall.tar.gz -C \
|
|
||||||
/var/www/localhost/heimdall --strip-components=1 && \
|
|
||||||
echo "**** configure nginx ****" && \
|
|
||||||
echo -e '\n# Heimdall user authorization\nfastcgi_param PHP_AUTH_USER $remote_user;\nfastcgi_param PHP_AUTH_PW $http_authorization;' >> \
|
|
||||||
/etc/nginx/fastcgi_params && \
|
|
||||||
echo "**** cleanup ****" && \
|
echo "**** cleanup ****" && \
|
||||||
rm -rf \
|
rm -rf \
|
||||||
/tmp/*
|
/tmp/*
|
||||||
|
|||||||
119
Jenkinsfile
vendored
119
Jenkinsfile
vendored
@@ -38,7 +38,7 @@ pipeline {
|
|||||||
script{
|
script{
|
||||||
env.EXIT_STATUS = ''
|
env.EXIT_STATUS = ''
|
||||||
env.LS_RELEASE = sh(
|
env.LS_RELEASE = sh(
|
||||||
script: '''curl -s https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases/latest | jq -r '. | .tag_name' ''',
|
script: '''docker run --rm alexeiled/skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':latest 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
|
||||||
returnStdout: true).trim()
|
returnStdout: true).trim()
|
||||||
env.LS_RELEASE_NOTES = sh(
|
env.LS_RELEASE_NOTES = sh(
|
||||||
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
|
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
|
||||||
@@ -132,7 +132,7 @@ pipeline {
|
|||||||
script{
|
script{
|
||||||
env.IMAGE = env.DOCKERHUB_IMAGE
|
env.IMAGE = env.DOCKERHUB_IMAGE
|
||||||
if (env.MULTIARCH == 'true') {
|
if (env.MULTIARCH == 'true') {
|
||||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v6-' + 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 + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||||
} else {
|
} else {
|
||||||
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||||
}
|
}
|
||||||
@@ -150,7 +150,7 @@ pipeline {
|
|||||||
script{
|
script{
|
||||||
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
|
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
|
||||||
if (env.MULTIARCH == 'true') {
|
if (env.MULTIARCH == 'true') {
|
||||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v6-' + 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 + '|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
|
||||||
} else {
|
} else {
|
||||||
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||||
}
|
}
|
||||||
@@ -168,7 +168,7 @@ pipeline {
|
|||||||
script{
|
script{
|
||||||
env.IMAGE = env.PR_DOCKERHUB_IMAGE
|
env.IMAGE = env.PR_DOCKERHUB_IMAGE
|
||||||
if (env.MULTIARCH == 'true') {
|
if (env.MULTIARCH == 'true') {
|
||||||
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v6-' + 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 + '|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
|
||||||
} else {
|
} else {
|
||||||
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
|
env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
|
||||||
}
|
}
|
||||||
@@ -178,6 +178,35 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Run ShellCheck
|
||||||
|
stage('ShellCheck') {
|
||||||
|
when {
|
||||||
|
environment name: 'CI', value: 'true'
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
withCredentials([
|
||||||
|
string(credentialsId: 'spaces-key', variable: 'DO_KEY'),
|
||||||
|
string(credentialsId: 'spaces-secret', variable: 'DO_SECRET')
|
||||||
|
]) {
|
||||||
|
script{
|
||||||
|
env.SHELLCHECK_URL = 'https://lsio-ci.ams3.digitaloceanspaces.com/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml'
|
||||||
|
}
|
||||||
|
sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
|
||||||
|
sh '''#! /bin/bash
|
||||||
|
set -e
|
||||||
|
docker pull lsiodev/spaces-file-upload:latest
|
||||||
|
docker run --rm \
|
||||||
|
-e DESTINATION=\"${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
|
||||||
|
-e FILE_NAME="shellcheck-result.xml" \
|
||||||
|
-e MIMETYPE="text/xml" \
|
||||||
|
-v ${WORKSPACE}:/mnt \
|
||||||
|
-e SECRET_KEY=\"${DO_SECRET}\" \
|
||||||
|
-e ACCESS_KEY=\"${DO_KEY}\" \
|
||||||
|
-t lsiodev/spaces-file-upload:latest \
|
||||||
|
python /upload.py'''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// Use helper containers to render templated files
|
// Use helper containers to render templated files
|
||||||
stage('Update-Templates') {
|
stage('Update-Templates') {
|
||||||
when {
|
when {
|
||||||
@@ -211,7 +240,7 @@ pipeline {
|
|||||||
fi
|
fi
|
||||||
mkdir -p ${TEMPDIR}/gitbook
|
mkdir -p ${TEMPDIR}/gitbook
|
||||||
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
|
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
|
||||||
if [ "${BRANCH_NAME}" = "master" ] && [ ! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md ] || [ "$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" ]; then
|
if [[ "${BRANCH_NAME}" == "master" ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
|
||||||
cp ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
|
cp ${TEMPDIR}/${CONTAINER_NAME}/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
|
||||||
cd ${TEMPDIR}/gitbook/docker-documentation/
|
cd ${TEMPDIR}/gitbook/docker-documentation/
|
||||||
git add images/docker-${CONTAINER_NAME}.md
|
git add images/docker-${CONTAINER_NAME}.md
|
||||||
@@ -252,7 +281,7 @@ pipeline {
|
|||||||
environment name: 'EXIT_STATUS', value: ''
|
environment name: 'EXIT_STATUS', value: ''
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
sh "docker build --no-cache -t ${IMAGE}:${META_TAG} \
|
sh "docker build --no-cache --pull -t ${IMAGE}:${META_TAG} \
|
||||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -265,7 +294,7 @@ pipeline {
|
|||||||
parallel {
|
parallel {
|
||||||
stage('Build X86') {
|
stage('Build X86') {
|
||||||
steps {
|
steps {
|
||||||
sh "docker build --no-cache -t ${IMAGE}:amd64-${META_TAG} \
|
sh "docker build --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \
|
||||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -286,15 +315,13 @@ pipeline {
|
|||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
||||||
'''
|
'''
|
||||||
sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static -o qemu-arm-static"
|
sh "docker build --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
|
||||||
sh "chmod +x qemu-*"
|
|
||||||
sh "docker build --no-cache -f Dockerfile.armhf -t ${IMAGE}:arm32v6-${META_TAG} \
|
|
||||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||||
sh "docker tag ${IMAGE}:arm32v6-${META_TAG} lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}"
|
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
|
||||||
sh "docker push lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}"
|
sh "docker push lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
|
||||||
sh '''docker rmi \
|
sh '''docker rmi \
|
||||||
${IMAGE}:arm32v6-${META_TAG} \
|
${IMAGE}:arm32v7-${META_TAG} \
|
||||||
lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} '''
|
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -315,15 +342,13 @@ pipeline {
|
|||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
||||||
'''
|
'''
|
||||||
sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static -o qemu-aarch64-static"
|
sh "docker build --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
|
||||||
sh "chmod +x qemu-*"
|
|
||||||
sh "docker build --no-cache -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
|
|
||||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||||
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
|
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
|
||||||
sh "docker push lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
|
sh "docker push lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
|
||||||
sh '''docker rmi \
|
sh '''docker rmi \
|
||||||
${IMAGE}:arm64v8-${META_TAG} \
|
${IMAGE}:arm64v8-${META_TAG} \
|
||||||
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
|
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -347,13 +372,13 @@ pipeline {
|
|||||||
fi
|
fi
|
||||||
if [ "${DIST_IMAGE}" == "alpine" ]; then
|
if [ "${DIST_IMAGE}" == "alpine" ]; then
|
||||||
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
|
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
|
||||||
apk info > packages && \
|
apk info -v > /tmp/package_versions.txt && \
|
||||||
apk info -v > versions && \
|
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
|
||||||
paste -d " " packages versions > /tmp/package_versions.txt && \
|
|
||||||
chmod 777 /tmp/package_versions.txt'
|
chmod 777 /tmp/package_versions.txt'
|
||||||
elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
|
elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
|
||||||
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
|
docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
|
||||||
apt list -qq --installed | cut -d" " -f1-2 > /tmp/package_versions.txt && \
|
apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
|
||||||
|
sort -o /tmp/package_versions.txt /tmp/package_versions.txt && \
|
||||||
chmod 777 /tmp/package_versions.txt'
|
chmod 777 /tmp/package_versions.txt'
|
||||||
fi
|
fi
|
||||||
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
|
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
|
||||||
@@ -433,9 +458,9 @@ pipeline {
|
|||||||
set -e
|
set -e
|
||||||
docker pull lsiodev/ci:latest
|
docker pull lsiodev/ci:latest
|
||||||
if [ "${MULTIARCH}" == "true" ]; then
|
if [ "${MULTIARCH}" == "true" ]; then
|
||||||
docker pull lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}
|
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||||
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||||
docker tag lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6-${META_TAG}
|
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
|
||||||
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
||||||
fi
|
fi
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
@@ -487,7 +512,7 @@ pipeline {
|
|||||||
sh "docker push ${IMAGE}:${META_TAG}"
|
sh "docker push ${IMAGE}:${META_TAG}"
|
||||||
sh '''docker rmi \
|
sh '''docker rmi \
|
||||||
${IMAGE}:${META_TAG} \
|
${IMAGE}:${META_TAG} \
|
||||||
${IMAGE}:latest '''
|
${IMAGE}:latest || :'''
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -512,39 +537,39 @@ pipeline {
|
|||||||
'''
|
'''
|
||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
if [ "${CI}" == "false" ]; then
|
if [ "${CI}" == "false" ]; then
|
||||||
docker pull lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER}
|
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||||
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||||
docker tag lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v6-${META_TAG}
|
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
|
||||||
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
||||||
fi'''
|
fi'''
|
||||||
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-latest"
|
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-latest"
|
||||||
sh "docker tag ${IMAGE}:arm32v6-${META_TAG} ${IMAGE}:arm32v6-latest"
|
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-latest"
|
||||||
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-latest"
|
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-latest"
|
||||||
sh "docker push ${IMAGE}:amd64-${META_TAG}"
|
sh "docker push ${IMAGE}:amd64-${META_TAG}"
|
||||||
sh "docker push ${IMAGE}:arm32v6-${META_TAG}"
|
sh "docker push ${IMAGE}:arm32v7-${META_TAG}"
|
||||||
sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
|
sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
|
||||||
sh "docker push ${IMAGE}:amd64-latest"
|
sh "docker push ${IMAGE}:amd64-latest"
|
||||||
sh "docker push ${IMAGE}:arm32v6-latest"
|
sh "docker push ${IMAGE}:arm32v7-latest"
|
||||||
sh "docker push ${IMAGE}:arm64v8-latest"
|
sh "docker push ${IMAGE}:arm64v8-latest"
|
||||||
sh "docker manifest push --purge ${IMAGE}:latest || :"
|
sh "docker manifest push --purge ${IMAGE}:latest || :"
|
||||||
sh "docker manifest create ${IMAGE}:latest ${IMAGE}:amd64-latest ${IMAGE}:arm32v6-latest ${IMAGE}:arm64v8-latest"
|
sh "docker manifest create ${IMAGE}:latest ${IMAGE}:amd64-latest ${IMAGE}:arm32v7-latest ${IMAGE}:arm64v8-latest"
|
||||||
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm32v6-latest --os linux --arch arm"
|
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm32v7-latest --os linux --arch arm"
|
||||||
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8"
|
sh "docker manifest annotate ${IMAGE}:latest ${IMAGE}:arm64v8-latest --os linux --arch arm64 --variant v8"
|
||||||
sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
|
sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
|
||||||
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v6-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
|
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
|
||||||
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v6-${META_TAG} --os linux --arch arm"
|
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} --os linux --arch arm"
|
||||||
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
|
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
|
||||||
sh "docker manifest push --purge ${IMAGE}:latest"
|
sh "docker manifest push --purge ${IMAGE}:latest"
|
||||||
sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
|
sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
|
||||||
sh '''docker rmi \
|
sh '''docker rmi \
|
||||||
${IMAGE}:amd64-${META_TAG} \
|
${IMAGE}:amd64-${META_TAG} \
|
||||||
${IMAGE}:amd64-latest \
|
${IMAGE}:amd64-latest \
|
||||||
${IMAGE}:arm32v6-${META_TAG} \
|
${IMAGE}:arm32v7-${META_TAG} \
|
||||||
${IMAGE}:arm32v6-latest \
|
${IMAGE}:arm32v7-latest \
|
||||||
${IMAGE}:arm64v8-${META_TAG} \
|
${IMAGE}:arm64v8-${META_TAG} \
|
||||||
${IMAGE}:arm64v8-latest \
|
${IMAGE}:arm64v8-latest \
|
||||||
lsiodev/buildcache:arm32v6-${COMMIT_SHA}-${BUILD_NUMBER} \
|
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
|
||||||
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
|
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -553,25 +578,25 @@ pipeline {
|
|||||||
when {
|
when {
|
||||||
branch "master"
|
branch "master"
|
||||||
expression {
|
expression {
|
||||||
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-ls' + env.LS_TAG_NUMBER
|
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||||
}
|
}
|
||||||
environment name: 'CHANGE_ID', value: ''
|
environment name: 'CHANGE_ID', value: ''
|
||||||
environment name: 'EXIT_STATUS', value: ''
|
environment name: 'EXIT_STATUS', value: ''
|
||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
echo "Pushing New tag for current commit ${EXT_RELEASE_CLEAN}-pkg-${PACKAGE_TAG}-ls${LS_TAG_NUMBER}"
|
echo "Pushing New tag for current commit ${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}"
|
||||||
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
|
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
|
||||||
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-pkg-'${PACKAGE_TAG}'-ls'${LS_TAG_NUMBER}'",\
|
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
|
||||||
"object": "'${COMMIT_SHA}'",\
|
"object": "'${COMMIT_SHA}'",\
|
||||||
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-pkg-'${PACKAGE_TAG}'-ls'${LS_TAG_NUMBER}' to master",\
|
"message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
|
||||||
"type": "commit",\
|
"type": "commit",\
|
||||||
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
|
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
|
||||||
echo "Pushing New release for Tag"
|
echo "Pushing New release for Tag"
|
||||||
sh '''#! /bin/bash
|
sh '''#! /bin/bash
|
||||||
curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq '. |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
|
curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq '. |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json
|
||||||
echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-pkg-'${PACKAGE_TAG}'-ls'${LS_TAG_NUMBER}'",\
|
echo '{"tag_name":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
|
||||||
"target_commitish": "master",\
|
"target_commitish": "master",\
|
||||||
"name": "'${EXT_RELEASE_CLEAN}'-pkg-'${PACKAGE_TAG}'-ls'${LS_TAG_NUMBER}'",\
|
"name": "'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
|
||||||
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**'${EXT_REPO}' Changes:**\\n\\n' > start
|
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**'${EXT_REPO}' Changes:**\\n\\n' > start
|
||||||
printf '","draft": false,"prerelease": false}' >> releasebody.json
|
printf '","draft": false,"prerelease": false}' >> releasebody.json
|
||||||
paste -d'\\0' start releasebody.json > releasebody.json.done
|
paste -d'\\0' start releasebody.json > releasebody.json.done
|
||||||
@@ -614,7 +639,7 @@ pipeline {
|
|||||||
}
|
}
|
||||||
steps {
|
steps {
|
||||||
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
|
sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
|
||||||
-d '{"body": "I am a bot, here are the test results for this PR '${CI_URL}'"}' '''
|
-d '{"body": "I am a bot, here are the test results for this PR: \\n'${CI_URL}' \\n'${SHELLCHECK_URL}'"}' '''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -629,12 +654,12 @@ pipeline {
|
|||||||
}
|
}
|
||||||
else if (currentBuild.currentResult == "SUCCESS"){
|
else if (currentBuild.currentResult == "SUCCESS"){
|
||||||
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
|
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
|
||||||
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
|
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
|
||||||
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
|
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
|
sh ''' curl -X POST --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
|
||||||
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
|
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
|
||||||
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
|
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
44
README.md
44
README.md
@@ -12,7 +12,6 @@ Find us at:
|
|||||||
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
|
* [Discord](https://discord.gg/YWrKVTn) - realtime support / chat with the community and the team.
|
||||||
* [IRC](https://irc.linuxserver.io) - on freenode at `#linuxserver.io`. Our primary support channel is Discord.
|
* [IRC](https://irc.linuxserver.io) - on freenode at `#linuxserver.io`. Our primary support channel is Discord.
|
||||||
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
|
* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
|
||||||
* [Podcast](https://anchor.fm/linuxserverio) - on hiatus. Coming back soon (late 2018).
|
|
||||||
|
|
||||||
# [linuxserver/heimdall](https://github.com/linuxserver/docker-heimdall)
|
# [linuxserver/heimdall](https://github.com/linuxserver/docker-heimdall)
|
||||||
[](https://discord.gg/YWrKVTn)
|
[](https://discord.gg/YWrKVTn)
|
||||||
@@ -41,7 +40,7 @@ The architectures supported by this image are:
|
|||||||
| :----: | --- |
|
| :----: | --- |
|
||||||
| x86-64 | amd64-latest |
|
| x86-64 | amd64-latest |
|
||||||
| arm64 | arm64v8-latest |
|
| arm64 | arm64v8-latest |
|
||||||
| armhf | arm32v6-latest |
|
| armhf | arm32v7-latest |
|
||||||
|
|
||||||
## Version Tags
|
## Version Tags
|
||||||
|
|
||||||
@@ -157,15 +156,6 @@ Below are the instructions for updating containers:
|
|||||||
* Start the new container: `docker start heimdall`
|
* Start the new container: `docker start heimdall`
|
||||||
* You can also remove the old dangling images: `docker image prune`
|
* You can also remove the old dangling images: `docker image prune`
|
||||||
|
|
||||||
### Via Taisun auto-updater (especially useful if you don't remember the original parameters)
|
|
||||||
* Pull the latest image at its tag and replace it with the same env variables in one shot:
|
|
||||||
```
|
|
||||||
docker run --rm \
|
|
||||||
-v /var/run/docker.sock:/var/run/docker.sock taisun/updater \
|
|
||||||
--oneshot heimdall
|
|
||||||
```
|
|
||||||
* You can also remove the old dangling images: `docker image prune`
|
|
||||||
|
|
||||||
### Via Docker Compose
|
### Via Docker Compose
|
||||||
* Update all images: `docker-compose pull`
|
* Update all images: `docker-compose pull`
|
||||||
* or update a single image: `docker-compose pull heimdall`
|
* or update a single image: `docker-compose pull heimdall`
|
||||||
@@ -173,8 +163,40 @@ Below are the instructions for updating containers:
|
|||||||
* or update a single container: `docker-compose up -d heimdall`
|
* or update a single container: `docker-compose up -d heimdall`
|
||||||
* You can also remove the old dangling images: `docker image prune`
|
* You can also remove the old dangling images: `docker image prune`
|
||||||
|
|
||||||
|
### Via Watchtower auto-updater (especially useful if you don't remember the original parameters)
|
||||||
|
* Pull the latest image at its tag and replace it with the same env variables in one run:
|
||||||
|
```
|
||||||
|
docker run --rm \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
containrrr/watchtower \
|
||||||
|
--run-once heimdall
|
||||||
|
```
|
||||||
|
* You can also remove the old dangling images: `docker image prune`
|
||||||
|
|
||||||
|
## Building locally
|
||||||
|
|
||||||
|
If you want to make local modifications to these images for development purposes or just to customize the logic:
|
||||||
|
```
|
||||||
|
git clone https://github.com/linuxserver/docker-heimdall.git
|
||||||
|
cd docker-heimdall
|
||||||
|
docker build \
|
||||||
|
--no-cache \
|
||||||
|
--pull \
|
||||||
|
-t linuxserver/heimdall:latest .
|
||||||
|
```
|
||||||
|
|
||||||
|
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
|
||||||
|
```
|
||||||
|
docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||||
|
```
|
||||||
|
|
||||||
|
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
|
||||||
|
|
||||||
## Versions
|
## Versions
|
||||||
|
|
||||||
|
* **01.04.19:** - Fix permission detect logic.
|
||||||
|
* **26.03.19:** - Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown.
|
||||||
|
* **23.03.19:** - Switching to new Base images, shift to arm32v7 tag.
|
||||||
* **15.03.19:** - Clarify docker image tags in readme.
|
* **15.03.19:** - Clarify docker image tags in readme.
|
||||||
* **22.02.19:** - Rebasing to alpine 3.9.
|
* **22.02.19:** - Rebasing to alpine 3.9.
|
||||||
* **16.01.18:** - Generate random app key in .env for new installs.
|
* **16.01.18:** - Generate random app key in .env for new installs.
|
||||||
|
|||||||
@@ -1,69 +1,69 @@
|
|||||||
musl musl-1.1.20-r3
|
alpine-baselayout-3.1.0-r3
|
||||||
busybox busybox-1.29.3-r10
|
alpine-keys-2.1-r1
|
||||||
alpine-baselayout alpine-baselayout-3.1.0-r3
|
apache2-utils-2.4.39-r0
|
||||||
alpine-keys alpine-keys-2.1-r1
|
apk-tools-2.10.3-r1
|
||||||
ca-certificates-cacert ca-certificates-cacert-20190108-r0
|
apr-1.6.5-r0
|
||||||
libtls-standalone libtls-standalone-2.7.4-r6
|
apr-util-1.6.1-r5
|
||||||
ssl_client ssl_client-1.29.3-r10
|
bash-4.4.19-r1
|
||||||
zlib zlib-1.2.11-r1
|
busybox-1.29.3-r10
|
||||||
apk-tools apk-tools-2.10.3-r1
|
ca-certificates-20190108-r0
|
||||||
scanelf scanelf-1.2.3-r0
|
ca-certificates-cacert-20190108-r0
|
||||||
musl-utils musl-utils-1.1.20-r3
|
coreutils-8.30-r0
|
||||||
libc-utils libc-utils-0.7.1-r0
|
curl-7.64.0-r1
|
||||||
xz-libs xz-libs-5.2.4-r0
|
expat-2.2.6-r0
|
||||||
xz xz-5.2.4-r0
|
git-2.20.1-r0
|
||||||
ca-certificates ca-certificates-20190108-r0
|
libacl-2.2.52-r5
|
||||||
ncurses-terminfo-base ncurses-terminfo-base-6.1_p20190105-r0
|
libattr-2.4.47-r7
|
||||||
ncurses-terminfo ncurses-terminfo-6.1_p20190105-r0
|
libc-utils-0.7.1-r0
|
||||||
ncurses-libs ncurses-libs-6.1_p20190105-r0
|
libcrypto1.1-1.1.1b-r1
|
||||||
readline readline-7.0.003-r1
|
libcurl-7.64.0-r1
|
||||||
bash bash-4.4.19-r1
|
libedit-20181209.3.1-r0
|
||||||
libattr libattr-2.4.47-r7
|
libmagic-5.35-r0
|
||||||
libacl libacl-2.2.52-r5
|
libressl2.7-libcrypto-2.7.5-r0
|
||||||
coreutils coreutils-8.30-r0
|
libressl2.7-libssl-2.7.5-r0
|
||||||
linux-pam linux-pam-1.3.0-r0
|
libssh2-1.8.2-r0
|
||||||
shadow shadow-4.5-r0
|
libssl1.1-1.1.1b-r1
|
||||||
tzdata tzdata-2018i-r0
|
libtls-standalone-2.7.4-r6
|
||||||
libuuid libuuid-2.33-r0
|
libuuid-2.33-r0
|
||||||
apr apr-1.6.5-r0
|
libxml2-2.9.9-r1
|
||||||
expat expat-2.2.6-r0
|
libzip-1.5.1-r2
|
||||||
apr-util apr-util-1.6.1-r5
|
linux-pam-1.3.0-r0
|
||||||
apache2-utils apache2-utils-2.4.38-r2
|
logrotate-3.15.0-r0
|
||||||
nghttp2-libs nghttp2-libs-1.35.1-r0
|
musl-1.1.20-r4
|
||||||
libssh2 libssh2-1.8.0-r4
|
musl-utils-1.1.20-r4
|
||||||
libcurl libcurl-7.64.0-r1
|
nano-3.2-r0
|
||||||
pcre2 pcre2-10.32-r1
|
ncurses-libs-6.1_p20190105-r0
|
||||||
git git-2.20.1-r0
|
ncurses-terminfo-6.1_p20190105-r0
|
||||||
libressl2.7-libcrypto libressl2.7-libcrypto-2.7.5-r0
|
ncurses-terminfo-base-6.1_p20190105-r0
|
||||||
libressl2.7-libssl libressl2.7-libssl-2.7.5-r0
|
nghttp2-libs-1.35.1-r0
|
||||||
popt popt-1.16-r7
|
nginx-1.14.2-r0
|
||||||
logrotate logrotate-3.15.0-r0
|
openssl-1.1.1b-r1
|
||||||
libmagic libmagic-5.35-r0
|
pcre-8.42-r1
|
||||||
nano nano-3.2-r0
|
pcre2-10.32-r1
|
||||||
pcre pcre-8.42-r1
|
php7-7.2.17-r0
|
||||||
nginx nginx-1.14.2-r0
|
php7-common-7.2.17-r0
|
||||||
openssl openssl-1.1.1a-r1
|
php7-ctype-7.2.17-r0
|
||||||
php7-common php7-common-7.2.14-r0
|
php7-fileinfo-7.2.17-r0
|
||||||
libedit libedit-20181209.3.1-r0
|
php7-fpm-7.2.17-r0
|
||||||
libxml2 libxml2-2.9.9-r1
|
php7-json-7.2.17-r0
|
||||||
php7 php7-7.2.14-r0
|
php7-mbstring-7.2.17-r0
|
||||||
php7-fileinfo php7-fileinfo-7.2.14-r0
|
php7-openssl-7.2.17-r0
|
||||||
php7-fpm php7-fpm-7.2.14-r0
|
php7-pdo-7.2.17-r0
|
||||||
php7-json php7-json-7.2.14-r0
|
php7-pdo_sqlite-7.2.17-r0
|
||||||
php7-mbstring php7-mbstring-7.2.14-r0
|
php7-session-7.2.17-r0
|
||||||
php7-openssl php7-openssl-7.2.14-r0
|
php7-simplexml-7.2.17-r0
|
||||||
php7-session php7-session-7.2.14-r0
|
php7-tokenizer-7.2.17-r0
|
||||||
php7-simplexml php7-simplexml-7.2.14-r0
|
php7-xml-7.2.17-r0
|
||||||
php7-xml php7-xml-7.2.14-r0
|
php7-xmlwriter-7.2.17-r0
|
||||||
php7-xmlwriter php7-xmlwriter-7.2.14-r0
|
php7-zip-7.2.17-r0
|
||||||
libcrypto1.1 libcrypto1.1-1.1.1b-r1
|
popt-1.16-r7
|
||||||
libssl1.1 libssl1.1-1.1.1b-r1
|
readline-7.0.003-r1
|
||||||
curl curl-7.64.0-r1
|
scanelf-1.2.3-r0
|
||||||
php7-ctype php7-ctype-7.2.14-r0
|
shadow-4.5-r0
|
||||||
php7-pdo php7-pdo-7.2.14-r0
|
sqlite-libs-3.26.0-r3
|
||||||
sqlite-libs sqlite-libs-3.26.0-r3
|
ssl_client-1.29.3-r10
|
||||||
php7-pdo_sqlite php7-pdo_sqlite-7.2.14-r0
|
tar-1.32-r0
|
||||||
php7-tokenizer php7-tokenizer-7.2.14-r0
|
tzdata-2019a-r0
|
||||||
libzip libzip-1.5.1-r2
|
xz-5.2.4-r0
|
||||||
php7-zip php7-zip-7.2.14-r0
|
xz-libs-5.2.4-r0
|
||||||
tar tar-1.32-r0
|
zlib-1.2.11-r1
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_
|
|||||||
available_architectures:
|
available_architectures:
|
||||||
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
|
- { arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
|
||||||
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
|
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
|
||||||
- { arch: "{{ arch_armhf }}", tag: "arm32v6-latest"}
|
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
|
||||||
|
|
||||||
# development version
|
# development version
|
||||||
development_versions: true
|
development_versions: true
|
||||||
@@ -49,6 +49,9 @@ app_setup_block: |
|
|||||||
|
|
||||||
# changelog
|
# changelog
|
||||||
changelogs:
|
changelogs:
|
||||||
|
- { date: "01.04.19:", desc: "Fix permission detect logic." }
|
||||||
|
- { date: "26.03.19:", desc: "Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown." }
|
||||||
|
- { date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag." }
|
||||||
- { date: "15.03.19:", desc: "Clarify docker image tags in readme." }
|
- { date: "15.03.19:", desc: "Clarify docker image tags in readme." }
|
||||||
- { date: "22.02.19:", desc: "Rebasing to alpine 3.9." }
|
- { date: "22.02.19:", desc: "Rebasing to alpine 3.9." }
|
||||||
- { date: "16.01.18:", desc: "Generate random app key in .env for new installs." }
|
- { date: "16.01.18:", desc: "Generate random app key in .env for new installs." }
|
||||||
|
|||||||
@@ -2,7 +2,19 @@
|
|||||||
|
|
||||||
# make our folders
|
# make our folders
|
||||||
mkdir -p \
|
mkdir -p \
|
||||||
/config/www/{backgrounds,icons,avatars,SupportedApps}
|
/config/www/{backgrounds,icons,avatars,SupportedApps} \
|
||||||
|
/var/www/localhost/heimdall
|
||||||
|
|
||||||
|
# install heimdall if necessary
|
||||||
|
[[ -f /heimdall/heimdall.tar.gz ]] && \
|
||||||
|
echo "New container detected, installing Heimdall" && \
|
||||||
|
tar xf \
|
||||||
|
/heimdall/heimdall.tar.gz -C \
|
||||||
|
/var/www/localhost/heimdall --strip-components=1 && \
|
||||||
|
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 && \
|
||||||
|
chown -R abc:abc /var/www/localhost/heimdall
|
||||||
|
|
||||||
# create symlinks
|
# create symlinks
|
||||||
|
|
||||||
@@ -23,11 +35,12 @@ done
|
|||||||
# copy .env if not exists
|
# copy .env if not exists
|
||||||
[[ ! -f /config/www/.env ]] && \
|
[[ ! -f /config/www/.env ]] && \
|
||||||
cp /var/www/localhost/heimdall/.env.example /config/www/.env && \
|
cp /var/www/localhost/heimdall/.env.example /config/www/.env && \
|
||||||
|
echo "Creating app key. This may take a while on slower systems" && \
|
||||||
php /var/www/localhost/heimdall/artisan key:generate
|
php /var/www/localhost/heimdall/artisan key:generate
|
||||||
# set queue driver to database
|
# set queue driver to database
|
||||||
sed -i 's/QUEUE_DRIVER=sync/QUEUE_DRIVER=database/' /config/www/.env
|
sed -i 's/QUEUE_DRIVER=sync/QUEUE_DRIVER=database/' /config/www/.env
|
||||||
|
|
||||||
# permissions
|
# permissions
|
||||||
|
echo "Setting permissions"
|
||||||
chown -R abc:abc \
|
chown -R abc:abc \
|
||||||
/config \
|
/config
|
||||||
/var/www/localhost/heimdall
|
|
||||||
|
|||||||
Reference in New Issue
Block a user