mirror of
https://github.com/linuxserver/docker-heimdall.git
synced 2026-04-05 02:56:32 +09:00
Compare commits
20 Commits
developmen
...
developmen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
523d744f8a | ||
|
|
49ec00127e | ||
|
|
b8e058679e | ||
|
|
6ebaf00cb6 | ||
|
|
9f0cb3aa38 | ||
|
|
e10521f93e | ||
|
|
b25194e490 | ||
|
|
475c877c76 | ||
|
|
45367a03b6 | ||
|
|
2f3d7bdd94 | ||
|
|
7166a2b229 | ||
|
|
4ee9ea84b9 | ||
|
|
4d728e90a3 | ||
|
|
ed8c89fc22 | ||
|
|
b2078bfbf6 | ||
|
|
fff281c5b8 | ||
|
|
9aa3cce066 | ||
|
|
09b457bbd4 | ||
|
|
13955c751d | ||
|
|
723df80461 |
@@ -17,15 +17,19 @@ RUN \
|
||||
apk add --no-cache \
|
||||
php83-dom \
|
||||
php83-intl \
|
||||
php83-opcache \
|
||||
php83-pdo_mysql \
|
||||
php83-pdo_pgsql \
|
||||
php83-pdo_sqlite \
|
||||
php83-pdo_mysql \
|
||||
php83-tokenizer && \
|
||||
echo "**** configure nginx ****" && \
|
||||
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
|
||||
/etc/nginx/fastcgi_params && \
|
||||
echo 'fastcgi_param PHP_AUTH_PW $http_authorization; # Heimdall user authorization' >> \
|
||||
/etc/nginx/fastcgi_params && \
|
||||
echo "**** configure php opcache ****" && \
|
||||
echo 'opcache.validate_timestamps=0' >> \
|
||||
/etc/php83/conf.d/00_opcache.ini && \
|
||||
echo "**** install heimdall ****" && \
|
||||
mkdir -p \
|
||||
/heimdall && \
|
||||
|
||||
@@ -17,15 +17,19 @@ RUN \
|
||||
apk add --no-cache \
|
||||
php83-dom \
|
||||
php83-intl \
|
||||
php83-opcache \
|
||||
php83-pdo_mysql \
|
||||
php83-pdo_pgsql \
|
||||
php83-pdo_sqlite \
|
||||
php83-pdo_mysql \
|
||||
php83-tokenizer && \
|
||||
echo "**** configure nginx ****" && \
|
||||
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
|
||||
/etc/nginx/fastcgi_params && \
|
||||
echo 'fastcgi_param PHP_AUTH_PW $http_authorization; # Heimdall user authorization' >> \
|
||||
/etc/nginx/fastcgi_params && \
|
||||
echo "**** configure php opcache ****" && \
|
||||
echo 'opcache.validate_timestamps=0' >> \
|
||||
/etc/php83/conf.d/00_opcache.ini && \
|
||||
echo "**** install heimdall ****" && \
|
||||
mkdir -p \
|
||||
/heimdall && \
|
||||
|
||||
108
Jenkinsfile
vendored
108
Jenkinsfile
vendored
@@ -278,8 +278,15 @@ pipeline {
|
||||
set -e
|
||||
TEMPDIR=$(mktemp -d)
|
||||
docker pull ghcr.io/linuxserver/jenkins-builder:latest
|
||||
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=development -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
|
||||
# Stage 1 - Jenkinsfile update
|
||||
# Cloned repo paths for templating:
|
||||
# ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch development of ${LS_USER}/${LS_REPO} for running the jenkins builder on
|
||||
# ${TEMPDIR}/repo/${LS_REPO}: Cloned branch development of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
|
||||
# ${TEMPDIR}/docs/docker-documentation: Cloned docs repo for pushing docs updates to Github
|
||||
# ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos
|
||||
# ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
|
||||
git clone --branch development --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
|
||||
docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/jenkins-builder:latest
|
||||
echo "Starting Stage 1 - Jenkinsfile update"
|
||||
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
|
||||
mkdir -p ${TEMPDIR}/repo
|
||||
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
|
||||
@@ -291,14 +298,14 @@ pipeline {
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
|
||||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "Updating Jenkinsfile"
|
||||
echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit"
|
||||
rm -Rf ${TEMPDIR}
|
||||
exit 0
|
||||
else
|
||||
echo "Jenkinsfile is up to date."
|
||||
fi
|
||||
# Stage 2 - Delete old templates
|
||||
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml Dockerfile.armhf"
|
||||
echo "Starting Stage 2 - Delete old templates"
|
||||
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml"
|
||||
for i in ${OLD_TEMPLATES}; do
|
||||
if [[ -f "${i}" ]]; then
|
||||
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
|
||||
@@ -316,13 +323,13 @@ pipeline {
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
|
||||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "Deleting old and deprecated templates"
|
||||
echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit"
|
||||
rm -Rf ${TEMPDIR}
|
||||
exit 0
|
||||
else
|
||||
echo "No templates to delete"
|
||||
fi
|
||||
# Stage 3 - Update templates
|
||||
echo "Starting Stage 3 - Update templates"
|
||||
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
|
||||
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
|
||||
NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
|
||||
@@ -346,9 +353,14 @@ pipeline {
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git development
|
||||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "Updating templates and exiting build, new one will trigger based on commit"
|
||||
rm -Rf ${TEMPDIR}
|
||||
exit 0
|
||||
else
|
||||
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||
echo "No templates to update"
|
||||
fi
|
||||
echo "Starting Stage 4 - External repo updates: Docs, Unraid Template and Readme Sync to Docker Hub"
|
||||
mkdir -p ${TEMPDIR}/docs
|
||||
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation
|
||||
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -f ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/docs/docker-documentation/docs/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
|
||||
@@ -356,6 +368,7 @@ pipeline {
|
||||
cd ${TEMPDIR}/docs/docker-documentation
|
||||
GH_DOCS_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
|
||||
git add docs/images/docker-${CONTAINER_NAME}.md
|
||||
echo "Updating docs repo"
|
||||
git commit -m 'Bot Updating Documentation'
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} || \
|
||||
@@ -363,6 +376,8 @@ pipeline {
|
||||
sleep $((RANDOM % MAXWAIT)) && \
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase && \
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH})
|
||||
else
|
||||
echo "Docs update not needed, skipping"
|
||||
fi
|
||||
mkdir -p ${TEMPDIR}/unraid
|
||||
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates
|
||||
@@ -373,9 +388,12 @@ pipeline {
|
||||
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
|
||||
fi
|
||||
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]] && [[ (! -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
|
||||
echo "Updating Unraid template"
|
||||
cd ${TEMPDIR}/unraid/templates/
|
||||
GH_TEMPLATES_DEFAULT_BRANCH=$(git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||')
|
||||
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
|
||||
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list && [[ -f ${TEMPDIR}/unraid/templates/unraid/deprecated/${CONTAINER_NAME}.xml ]]; then
|
||||
echo "Image is on the ignore list, and already in the deprecation folder."
|
||||
elif grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
|
||||
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
|
||||
@@ -392,16 +410,27 @@ pipeline {
|
||||
sleep $((RANDOM % MAXWAIT)) && \
|
||||
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} --rebase && \
|
||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH})
|
||||
else
|
||||
echo "No updates to Unraid template needed, skipping"
|
||||
fi
|
||||
# Stage 4 - Sync Readme to Docker Hub
|
||||
if [[ "${BRANCH_NAME}" == "${GH_DEFAULT_BRANCH}" ]]; then
|
||||
if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) > 25000 ]]; then
|
||||
if [[ $(cat ${TEMPDIR}/docker-${CONTAINER_NAME}/README.md | wc -m) -gt 25000 ]]; then
|
||||
echo "Readme is longer than 25,000 characters. Syncing the lite version to Docker Hub"
|
||||
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/README.lite"
|
||||
else
|
||||
echo "Syncing readme to Docker Hub"
|
||||
DH_README_SYNC_PATH="${TEMPDIR}/docker-${CONTAINER_NAME}/README.md"
|
||||
fi
|
||||
if curl -s https://hub.docker.com/v2/namespaces/${DOCKERHUB_IMAGE%%/*}/repositories/${DOCKERHUB_IMAGE##*/}/tags | jq -r '.message' | grep -q 404; then
|
||||
echo "Docker Hub endpoint doesn't exist. Creating endpoint first."
|
||||
DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
|
||||
curl -s \
|
||||
-H "Authorization: JWT ${DH_TOKEN}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-X POST \
|
||||
-d '{"name":"'${DOCKERHUB_IMAGE##*/}'", "namespace":"'${DOCKERHUB_IMAGE%%/*}'"}' \
|
||||
https://hub.docker.com/v2/repositories/ || :
|
||||
fi
|
||||
DH_TOKEN=$(curl -d '{"username":"linuxserverci", "password":"'${DOCKERHUB_TOKEN}'"}' -H "Content-Type: application/json" -X POST https://hub.docker.com/v2/users/login | jq -r '.token')
|
||||
curl -s \
|
||||
-H "Authorization: JWT ${DH_TOKEN}" \
|
||||
@@ -466,14 +495,16 @@ pipeline {
|
||||
}
|
||||
steps{
|
||||
sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \
|
||||
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\
|
||||
"name":"'${LS_REPO}'",
|
||||
"mirror":true,\
|
||||
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
|
||||
"issues_access_level":"disabled",\
|
||||
"merge_requests_access_level":"disabled",\
|
||||
"repository_access_level":"enabled",\
|
||||
"visibility":"public"}' '''
|
||||
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\
|
||||
"name":"'${LS_REPO}'",
|
||||
"mirror":true,\
|
||||
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
|
||||
"issues_access_level":"disabled",\
|
||||
"merge_requests_access_level":"disabled",\
|
||||
"repository_access_level":"enabled",\
|
||||
"visibility":"public"}' '''
|
||||
sh '''curl -H "Private-Token: ${GITLAB_TOKEN}" -X PUT "https://gitlab.com/api/v4/projects/Linuxserver.io%2F${LS_REPO}" \
|
||||
-d "mirror=true&import_url=https://github.com/linuxserver/${LS_REPO}.git" '''
|
||||
}
|
||||
}
|
||||
/* ###############
|
||||
@@ -504,6 +535,7 @@ pipeline {
|
||||
--label \"org.opencontainers.image.title=Heimdall\" \
|
||||
--label \"org.opencontainers.image.description=[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. \" \
|
||||
--no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
|
||||
--provenance=false --sbom=false \
|
||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||
}
|
||||
}
|
||||
@@ -535,6 +567,7 @@ pipeline {
|
||||
--label \"org.opencontainers.image.title=Heimdall\" \
|
||||
--label \"org.opencontainers.image.description=[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. \" \
|
||||
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
|
||||
--provenance=false --sbom=false \
|
||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||
}
|
||||
}
|
||||
@@ -563,6 +596,7 @@ pipeline {
|
||||
--label \"org.opencontainers.image.title=Heimdall\" \
|
||||
--label \"org.opencontainers.image.description=[Heimdall](https://heimdall.site) is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. \" \
|
||||
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \
|
||||
--provenance=false --sbom=false \
|
||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
|
||||
retry(5) {
|
||||
@@ -589,7 +623,7 @@ pipeline {
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
TEMPDIR=$(mktemp -d)
|
||||
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
|
||||
if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" != "true" ]; then
|
||||
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
|
||||
else
|
||||
LOCAL_CONTAINER=${IMAGE}:${META_TAG}
|
||||
@@ -686,7 +720,7 @@ pipeline {
|
||||
--shm-size=1gb \
|
||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-e IMAGE=\"${IMAGE}\" \
|
||||
-e DELAY_START=\"${CI_DELAY}\" \
|
||||
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
|
||||
-e TAGS=\"${CI_TAGS}\" \
|
||||
-e META_TAG=\"${META_TAG}\" \
|
||||
-e PORT=\"${CI_PORT}\" \
|
||||
@@ -794,35 +828,13 @@ pipeline {
|
||||
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
|
||||
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
fi
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:development || :
|
||||
docker manifest create ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm64v8-development
|
||||
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm64v8-development --os linux --arch arm64 --variant v8
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
|
||||
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
|
||||
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
|
||||
done
|
||||
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm64v8-development
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||
if [ -n "${SEMVER}" ]; then
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
|
||||
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
|
||||
fi
|
||||
token=$(curl -sX GET "https://ghcr.io/token?scope=repository%3Alinuxserver%2F${CONTAINER_NAME}%3Apull" | jq -r '.token')
|
||||
digest=$(curl -s \
|
||||
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
|
||||
--header "Authorization: Bearer ${token}" \
|
||||
"https://ghcr.io/v2/linuxserver/${CONTAINER_NAME}/manifests/arm32v7-development")
|
||||
if [[ $(echo "$digest" | jq -r '.layers') != "null" ]]; then
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-development || :
|
||||
docker manifest create ${MANIFESTIMAGE}:arm32v7-development ${MANIFESTIMAGE}:amd64-development
|
||||
docker manifest push --purge ${MANIFESTIMAGE}:arm32v7-development
|
||||
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}
|
||||
docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||
fi
|
||||
done
|
||||
'''
|
||||
|
||||
@@ -28,7 +28,7 @@ Find us at:
|
||||
|
||||
# [linuxserver/heimdall](https://github.com/linuxserver/docker-heimdall)
|
||||
|
||||
[](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fheimdall)
|
||||
[](https://scarf.sh)
|
||||
[](https://github.com/linuxserver/docker-heimdall)
|
||||
[](https://github.com/linuxserver/docker-heimdall/releases)
|
||||
[](https://github.com/linuxserver/docker-heimdall/packages)
|
||||
@@ -292,6 +292,8 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
||||
|
||||
## Versions
|
||||
|
||||
* **07.03.24:** - Enable the opcache and disable file revalidation.
|
||||
* **06.03.24:** - Existing users should update: site-confs/default.conf - Cleanup default site conf.
|
||||
* **23.12.23:** - Rebase to Alpine 3.19 with php 8.3.
|
||||
* **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.
|
||||
* **13.04.23:** - Move ssl.conf include to default.conf.
|
||||
|
||||
@@ -4,8 +4,8 @@ alpine-baselayout 3.4.3-r2 apk
|
||||
alpine-baselayout-data 3.4.3-r2 apk
|
||||
alpine-keys 2.4-r1 apk
|
||||
alpine-release 3.19.1-r0 apk
|
||||
apache2-utils 2.4.58-r1 apk
|
||||
apk-tools 2.14.0-r5 apk
|
||||
apache2-utils 2.4.59-r0 apk
|
||||
apk-tools 2.14.4-r0 apk
|
||||
apr 1.7.4-r0 apk
|
||||
apr-util 1.6.3-r1 apk
|
||||
argon2-libs 20190702-r5 apk
|
||||
@@ -16,14 +16,15 @@ barryvdh/reflection-docblock v2.1.1 php-composer
|
||||
bash 5.2.21-r0 apk
|
||||
brick/math 0.11.0 php-composer
|
||||
brotli-libs 1.1.0-r1 apk
|
||||
busybox 1.36.1-r15 apk
|
||||
busybox-binsh 1.36.1-r15 apk
|
||||
c-ares 1.24.0-r1 apk
|
||||
ca-certificates 20230506-r0 apk
|
||||
ca-certificates-bundle 20230506-r0 apk
|
||||
busybox 1.36.1-r18 apk
|
||||
busybox-binsh 1.36.1-r18 apk
|
||||
c-ares 1.27.0-r0 apk
|
||||
ca-certificates 20240226-r0 apk
|
||||
ca-certificates-bundle 20240226-r0 apk
|
||||
carbonphp/carbon-doctrine-types 2.1.0 php-composer
|
||||
catatonit 0.2.0-r0 apk
|
||||
clue/stream-filter v1.7.0 php-composer
|
||||
composer 2.7.1 binary
|
||||
composer 2.7.6 binary
|
||||
composer/class-map-generator 1.1.0 php-composer
|
||||
composer/pcre 3.1.1 php-composer
|
||||
coreutils 9.4-r2 apk
|
||||
@@ -43,8 +44,9 @@ dragonmantank/cron-expression v3.3.3 php-composer
|
||||
egulias/email-validator 4.0.2 php-composer
|
||||
fakerphp/faker v1.23.1 php-composer
|
||||
filp/whoops 2.15.4 php-composer
|
||||
findutils 4.9.0-r5 apk
|
||||
fruitcake/php-cors v1.3.0 php-composer
|
||||
git 2.43.0-r0 apk
|
||||
git 2.43.4-r0 apk
|
||||
graham-campbell/bounded-cache v2.2.0 php-composer
|
||||
graham-campbell/github v12.4.0 php-composer
|
||||
graham-campbell/manager v5.1.0 php-composer
|
||||
@@ -54,7 +56,6 @@ guzzlehttp/promises 2.0.2 php-composer
|
||||
guzzlehttp/psr7 2.6.2 php-composer
|
||||
guzzlehttp/uri-template v1.0.3 php-composer
|
||||
hamcrest/hamcrest-php v2.0.1 php-composer
|
||||
hiredis 1.2.0-r0 apk
|
||||
icu-data-en 74.1-r0 apk
|
||||
icu-libs 74.1-r0 apk
|
||||
jq 1.7.1-r0 apk
|
||||
@@ -77,22 +78,22 @@ libattr 2.5.1-r5 apk
|
||||
libbsd 0.11.7-r3 apk
|
||||
libbz2 1.0.8-r6 apk
|
||||
libc-utils 0.7.2-r5 apk
|
||||
libcrypto3 3.1.4-r5 apk
|
||||
libcrypto3 3.1.5-r0 apk
|
||||
libcurl 8.5.0-r0 apk
|
||||
libedit 20230828.3.1-r3 apk
|
||||
libexpat 2.6.0-r0 apk
|
||||
libexpat 2.6.2-r0 apk
|
||||
libgcc 13.2.1_git20231014-r0 apk
|
||||
libidn2 2.3.4-r4 apk
|
||||
libintl 0.22.3-r0 apk
|
||||
libmd 1.1.0-r0 apk
|
||||
libncursesw 6.4_p20231125-r0 apk
|
||||
libpq 16.2-r0 apk
|
||||
libpq 16.3-r0 apk
|
||||
libproc2 4.0.4-r0 apk
|
||||
libssl3 3.1.4-r5 apk
|
||||
libssl3 3.1.5-r0 apk
|
||||
libstdc++ 13.2.1_git20231014-r0 apk
|
||||
libunistring 1.1-r2 apk
|
||||
libuuid 2.39.3-r0 apk
|
||||
libxml2 2.11.7-r0 apk
|
||||
libxml2 2.11.8-r0 apk
|
||||
libzip 1.10.1-r0 apk
|
||||
linux-pam 1.5.3-r7 apk
|
||||
logrotate 3.21.0-r1 apk
|
||||
@@ -109,12 +110,12 @@ netcat-openbsd 1.226-r0 apk
|
||||
nette/schema v1.3.0 php-composer
|
||||
nette/utils v4.0.4 php-composer
|
||||
nghttp2-libs 1.58.0-r0 apk
|
||||
nginx 1.24.0-r15 apk
|
||||
nginx 1.24.0-r16 apk
|
||||
nikic/php-parser v5.0.0 php-composer
|
||||
nunomaduro/collision v6.4.0 php-composer
|
||||
nunomaduro/termwind v1.15.1 php-composer
|
||||
oniguruma 6.9.9-r0 apk
|
||||
openssl 3.1.4-r5 apk
|
||||
openssl 3.1.5-r0 apk
|
||||
pcre 8.45-r3 apk
|
||||
pcre2 10.42-r2 apk
|
||||
phar-io/manifest 2.0.3 php-composer
|
||||
@@ -127,29 +128,30 @@ php-http/message 1.16.0 php-composer
|
||||
php-http/message-factory 1.1.0 php-composer
|
||||
php-http/multipart-stream-builder 1.3.0 php-composer
|
||||
php-http/promise 1.3.0 php-composer
|
||||
php83 8.3.3-r0 apk
|
||||
php83-common 8.3.3-r0 apk
|
||||
php83-ctype 8.3.3-r0 apk
|
||||
php83-curl 8.3.3-r0 apk
|
||||
php83-dom 8.3.3-r0 apk
|
||||
php83-fileinfo 8.3.3-r0 apk
|
||||
php83-fpm 8.3.3-r0 apk
|
||||
php83-iconv 8.3.3-r0 apk
|
||||
php83-intl 8.3.3-r0 apk
|
||||
php83-mbstring 8.3.3-r0 apk
|
||||
php83-mysqlnd 8.3.3-r0 apk
|
||||
php83-openssl 8.3.3-r0 apk
|
||||
php83-pdo 8.3.3-r0 apk
|
||||
php83-pdo_mysql 8.3.3-r0 apk
|
||||
php83-pdo_pgsql 8.3.3-r0 apk
|
||||
php83-pdo_sqlite 8.3.3-r0 apk
|
||||
php83-phar 8.3.3-r0 apk
|
||||
php83-session 8.3.3-r0 apk
|
||||
php83-simplexml 8.3.3-r0 apk
|
||||
php83-tokenizer 8.3.3-r0 apk
|
||||
php83-xml 8.3.3-r0 apk
|
||||
php83-xmlwriter 8.3.3-r0 apk
|
||||
php83-zip 8.3.3-r0 apk
|
||||
php83 8.3.7-r0 apk
|
||||
php83-common 8.3.7-r0 apk
|
||||
php83-ctype 8.3.7-r0 apk
|
||||
php83-curl 8.3.7-r0 apk
|
||||
php83-dom 8.3.7-r0 apk
|
||||
php83-fileinfo 8.3.7-r0 apk
|
||||
php83-fpm 8.3.7-r0 apk
|
||||
php83-iconv 8.3.7-r0 apk
|
||||
php83-intl 8.3.7-r0 apk
|
||||
php83-mbstring 8.3.7-r0 apk
|
||||
php83-mysqlnd 8.3.7-r0 apk
|
||||
php83-opcache 8.3.7-r0 apk
|
||||
php83-openssl 8.3.7-r0 apk
|
||||
php83-pdo 8.3.7-r0 apk
|
||||
php83-pdo_mysql 8.3.7-r0 apk
|
||||
php83-pdo_pgsql 8.3.7-r0 apk
|
||||
php83-pdo_sqlite 8.3.7-r0 apk
|
||||
php83-phar 8.3.7-r0 apk
|
||||
php83-session 8.3.7-r0 apk
|
||||
php83-simplexml 8.3.7-r0 apk
|
||||
php83-tokenizer 8.3.7-r0 apk
|
||||
php83-xml 8.3.7-r0 apk
|
||||
php83-xmlwriter 8.3.7-r0 apk
|
||||
php83-zip 8.3.7-r0 apk
|
||||
phpdocumentor/reflection-common 2.2.0 php-composer
|
||||
phpdocumentor/type-resolver 1.8.0 php-composer
|
||||
phpoption/phpoption 1.9.2 php-composer
|
||||
@@ -201,7 +203,7 @@ spatie/ignition 1.12.0 php-composer
|
||||
spatie/laravel-ignition 2.4.2 php-composer
|
||||
sqlite-libs 3.44.2-r0 apk
|
||||
squizlabs/php_codesniffer 3.9.0 php-composer
|
||||
ssl_client 1.36.1-r15 apk
|
||||
ssl_client 1.36.1-r18 apk
|
||||
symfony/cache v6.4.3 php-composer
|
||||
symfony/cache-contracts v3.4.0 php-composer
|
||||
symfony/console v6.4.3 php-composer
|
||||
|
||||
@@ -58,6 +58,8 @@ app_setup_block: |
|
||||
|
||||
# changelog
|
||||
changelogs:
|
||||
- { date: "07.03.24:", desc: "Enable the opcache and disable file revalidation."}
|
||||
- { date: "06.03.24:", desc: "Existing users should update: site-confs/default.conf - Cleanup default site conf." }
|
||||
- { date: "23.12.23:", desc: "Rebase to Alpine 3.19 with php 8.3."}
|
||||
- { date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf." }
|
||||
- { date: "13.04.23:", desc: "Move ssl.conf include to default.conf." }
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## Version 2023/04/13 - Changelog: https://github.com/linuxserver/docker-heimdall/commits/master/root/defaults/nginx/site-confs/default.conf.sample
|
||||
## Version 2024/03/06 - Changelog: https://github.com/linuxserver/docker-heimdall/commits/master/root/defaults/nginx/site-confs/default.conf.sample
|
||||
|
||||
server {
|
||||
listen 80 default_server;
|
||||
@@ -19,11 +19,16 @@ server {
|
||||
#auth_basic "Restricted";
|
||||
#auth_basic_user_file /config/nginx/.htpasswd;
|
||||
|
||||
try_files $uri $uri/ /index.html /index.php$is_args$args;
|
||||
try_files $uri $uri/ /index.html /index.htm /index.php$is_args$args;
|
||||
}
|
||||
|
||||
location ~ ^(.+\.php)(.*)$ {
|
||||
# enable the next two lines for http auth
|
||||
#auth_basic "Restricted";
|
||||
#auth_basic_user_file /config/nginx/.htpasswd;
|
||||
|
||||
fastcgi_split_path_info ^(.+\.php)(.*)$;
|
||||
if (!-f $document_root$fastcgi_script_name) { return 404; }
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
fastcgi_index index.php;
|
||||
include /etc/nginx/fastcgi_params;
|
||||
|
||||
Reference in New Issue
Block a user