mirror of
https://github.com/linuxserver/docker-heimdall.git
synced 2026-04-09 04:34:53 +09:00
Compare commits
6 Commits
2.1.13-pkg
...
2.1.13-ls4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c4c57fcaf9 | ||
|
|
0c0663a5ab | ||
|
|
e73bef69c8 | ||
|
|
cadf51061f | ||
|
|
723c0c7af0 | ||
|
|
a157f54f20 |
28
Jenkinsfile
vendored
28
Jenkinsfile
vendored
@@ -38,7 +38,7 @@ pipeline {
|
||||
script{
|
||||
env.EXIT_STATUS = ''
|
||||
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()
|
||||
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' ''',
|
||||
@@ -240,7 +240,7 @@ pipeline {
|
||||
fi
|
||||
mkdir -p ${TEMPDIR}/gitbook
|
||||
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/
|
||||
cd ${TEMPDIR}/gitbook/docker-documentation/
|
||||
git add images/docker-${CONTAINER_NAME}.md
|
||||
@@ -315,15 +315,13 @@ pipeline {
|
||||
sh '''#! /bin/bash
|
||||
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
||||
'''
|
||||
sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static -o qemu-arm-static"
|
||||
sh "chmod +x qemu-*"
|
||||
sh "docker build --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
|
||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${META_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
|
||||
sh "docker push lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
|
||||
sh '''docker rmi \
|
||||
${IMAGE}:arm32v7-${META_TAG} \
|
||||
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} '''
|
||||
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -344,15 +342,13 @@ pipeline {
|
||||
sh '''#! /bin/bash
|
||||
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
|
||||
'''
|
||||
sh "curl https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static -o qemu-aarch64-static"
|
||||
sh "chmod +x qemu-*"
|
||||
sh "docker build --no-cache --pull -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} ."
|
||||
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 rmi \
|
||||
${IMAGE}:arm64v8-${META_TAG} \
|
||||
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
|
||||
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -516,7 +512,7 @@ pipeline {
|
||||
sh "docker push ${IMAGE}:${META_TAG}"
|
||||
sh '''docker rmi \
|
||||
${IMAGE}:${META_TAG} \
|
||||
${IMAGE}:latest '''
|
||||
${IMAGE}:latest || :'''
|
||||
|
||||
}
|
||||
}
|
||||
@@ -573,7 +569,7 @@ pipeline {
|
||||
${IMAGE}:arm64v8-${META_TAG} \
|
||||
${IMAGE}:arm64v8-latest \
|
||||
lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
|
||||
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} '''
|
||||
lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -582,25 +578,25 @@ pipeline {
|
||||
when {
|
||||
branch "master"
|
||||
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: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
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 \
|
||||
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-pkg-'${PACKAGE_TAG}'-ls'${LS_TAG_NUMBER}'",\
|
||||
-d '{"tag":"'${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}'",\
|
||||
"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",\
|
||||
"tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
|
||||
echo "Pushing New release for Tag"
|
||||
sh '''#! /bin/bash
|
||||
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",\
|
||||
"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
|
||||
printf '","draft": false,"prerelease": false}' >> releasebody.json
|
||||
paste -d'\\0' start releasebody.json > releasebody.json.done
|
||||
|
||||
39
README.md
39
README.md
@@ -156,15 +156,6 @@ Below are the instructions for updating containers:
|
||||
* Start the new container: `docker start heimdall`
|
||||
* 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
|
||||
* Update all images: `docker-compose pull`
|
||||
* or update a single image: `docker-compose pull heimdall`
|
||||
@@ -172,8 +163,38 @@ Below are the instructions for updating containers:
|
||||
* or update a single container: `docker-compose up -d heimdall`
|
||||
* 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
|
||||
|
||||
* **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.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
alpine-baselayout-3.1.0-r3
|
||||
alpine-keys-2.1-r1
|
||||
apache2-utils-2.4.38-r2
|
||||
apache2-utils-2.4.39-r0
|
||||
apk-tools-2.10.3-r1
|
||||
apr-1.6.5-r0
|
||||
apr-util-1.6.1-r5
|
||||
@@ -40,22 +40,22 @@ nginx-1.14.2-r0
|
||||
openssl-1.1.1b-r1
|
||||
pcre-8.42-r1
|
||||
pcre2-10.32-r1
|
||||
php7-7.2.14-r0
|
||||
php7-common-7.2.14-r0
|
||||
php7-ctype-7.2.14-r0
|
||||
php7-fileinfo-7.2.14-r0
|
||||
php7-fpm-7.2.14-r0
|
||||
php7-json-7.2.14-r0
|
||||
php7-mbstring-7.2.14-r0
|
||||
php7-openssl-7.2.14-r0
|
||||
php7-pdo-7.2.14-r0
|
||||
php7-pdo_sqlite-7.2.14-r0
|
||||
php7-session-7.2.14-r0
|
||||
php7-simplexml-7.2.14-r0
|
||||
php7-tokenizer-7.2.14-r0
|
||||
php7-xml-7.2.14-r0
|
||||
php7-xmlwriter-7.2.14-r0
|
||||
php7-zip-7.2.14-r0
|
||||
php7-7.2.17-r0
|
||||
php7-common-7.2.17-r0
|
||||
php7-ctype-7.2.17-r0
|
||||
php7-fileinfo-7.2.17-r0
|
||||
php7-fpm-7.2.17-r0
|
||||
php7-json-7.2.17-r0
|
||||
php7-mbstring-7.2.17-r0
|
||||
php7-openssl-7.2.17-r0
|
||||
php7-pdo-7.2.17-r0
|
||||
php7-pdo_sqlite-7.2.17-r0
|
||||
php7-session-7.2.17-r0
|
||||
php7-simplexml-7.2.17-r0
|
||||
php7-tokenizer-7.2.17-r0
|
||||
php7-xml-7.2.17-r0
|
||||
php7-xmlwriter-7.2.17-r0
|
||||
php7-zip-7.2.17-r0
|
||||
popt-1.16-r7
|
||||
readline-7.0.003-r1
|
||||
scanelf-1.2.3-r0
|
||||
@@ -63,7 +63,7 @@ shadow-4.5-r0
|
||||
sqlite-libs-3.26.0-r3
|
||||
ssl_client-1.29.3-r10
|
||||
tar-1.32-r0
|
||||
tzdata-2018i-r0
|
||||
tzdata-2019a-r0
|
||||
xz-5.2.4-r0
|
||||
xz-libs-5.2.4-r0
|
||||
zlib-1.2.11-r1
|
||||
|
||||
@@ -49,6 +49,7 @@ app_setup_block: |
|
||||
|
||||
# changelog
|
||||
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." }
|
||||
|
||||
@@ -40,27 +40,7 @@ done
|
||||
# set queue driver to database
|
||||
sed -i 's/QUEUE_DRIVER=sync/QUEUE_DRIVER=database/' /config/www/.env
|
||||
|
||||
# function to randomly sample 5 files for their owner and only chown if not abc
|
||||
chowner () {
|
||||
files=(${1}/*)
|
||||
for i in {1..5}; do
|
||||
user=$(stat -c '%U' $(printf "%s\n" "${files[RANDOM % ${#files[@]}]}"))
|
||||
if [ "${user}" != "abc" ]; then
|
||||
chown -R abc:abc ${1}
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# permissions
|
||||
echo "Setting permissions"
|
||||
abc_dirs=( \
|
||||
/config \
|
||||
)
|
||||
for i in "${abc_dirs[@]}"; do
|
||||
if [ "$(ls -A ${i})" ]; then
|
||||
chowner ${i}
|
||||
else
|
||||
chown -R abc:abc ${i}
|
||||
fi
|
||||
done
|
||||
chown -R abc:abc \
|
||||
/config
|
||||
|
||||
Reference in New Issue
Block a user