mirror of
https://github.com/linuxserver/docker-heimdall.git
synced 2026-04-10 21:05:54 +09:00
Compare commits
25 Commits
developmen
...
developmen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
369ba1c41b | ||
|
|
88e7e1df09 | ||
|
|
a694621f78 | ||
|
|
0a0c8862f6 | ||
|
|
649f2b09a7 | ||
|
|
1ab60fda12 | ||
|
|
67b8da2a27 | ||
|
|
9da87dc8cf | ||
|
|
1de91cfbd0 | ||
|
|
19c0db5c97 | ||
|
|
5498349626 | ||
|
|
eabd8a6738 | ||
|
|
82f1f4d934 | ||
|
|
7237d6ca9a | ||
|
|
2275a8fb64 | ||
|
|
d545593107 | ||
|
|
34f7492c97 | ||
|
|
134b3e9533 | ||
|
|
8217bd55ea | ||
|
|
1761816c42 | ||
|
|
ab5fc6b23d | ||
|
|
f9d2fca42c | ||
|
|
fbe856fab3 | ||
|
|
5a251cd21c | ||
|
|
19e3093840 |
1
.github/ISSUE_TEMPLATE/issue.bug.yml
vendored
1
.github/ISSUE_TEMPLATE/issue.bug.yml
vendored
@@ -53,7 +53,6 @@ body:
|
|||||||
options:
|
options:
|
||||||
- x86-64
|
- x86-64
|
||||||
- arm64
|
- arm64
|
||||||
- armhf
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
|
|||||||
17
Dockerfile
17
Dockerfile
@@ -1,6 +1,6 @@
|
|||||||
# syntax=docker/dockerfile:1
|
# syntax=docker/dockerfile:1
|
||||||
|
|
||||||
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.17
|
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.18
|
||||||
|
|
||||||
# set version label
|
# set version label
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
@@ -14,15 +14,12 @@ ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
|
|||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
echo "**** install runtime packages ****" && \
|
echo "**** install runtime packages ****" && \
|
||||||
apk add --no-cache --upgrade \
|
apk add --no-cache \
|
||||||
php81-ctype \
|
php82-intl \
|
||||||
php81-curl \
|
php82-pdo_pgsql \
|
||||||
php81-intl \
|
php82-pdo_sqlite \
|
||||||
php81-pdo_pgsql \
|
php82-pdo_mysql \
|
||||||
php81-pdo_sqlite \
|
php82-tokenizer && \
|
||||||
php81-pdo_mysql \
|
|
||||||
php81-tokenizer \
|
|
||||||
php81-zip && \
|
|
||||||
echo "**** configure nginx ****" && \
|
echo "**** configure nginx ****" && \
|
||||||
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
|
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
|
||||||
/etc/nginx/fastcgi_params && \
|
/etc/nginx/fastcgi_params && \
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# syntax=docker/dockerfile:1
|
# syntax=docker/dockerfile:1
|
||||||
|
|
||||||
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.17
|
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.18
|
||||||
|
|
||||||
# set version label
|
# set version label
|
||||||
ARG BUILD_DATE
|
ARG BUILD_DATE
|
||||||
@@ -14,15 +14,12 @@ ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
|
|||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
echo "**** install runtime packages ****" && \
|
echo "**** install runtime packages ****" && \
|
||||||
apk add --no-cache --upgrade \
|
apk add --no-cache \
|
||||||
php81-ctype \
|
php82-intl \
|
||||||
php81-curl \
|
php82-pdo_pgsql \
|
||||||
php81-intl \
|
php82-pdo_sqlite \
|
||||||
php81-pdo_pgsql \
|
php82-pdo_mysql \
|
||||||
php81-pdo_sqlite \
|
php82-tokenizer && \
|
||||||
php81-pdo_mysql \
|
|
||||||
php81-tokenizer \
|
|
||||||
php81-zip && \
|
|
||||||
echo "**** configure nginx ****" && \
|
echo "**** configure nginx ****" && \
|
||||||
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
|
echo 'fastcgi_param PHP_AUTH_USER $remote_user; # Heimdall user authorization' >> \
|
||||||
/etc/nginx/fastcgi_params && \
|
/etc/nginx/fastcgi_params && \
|
||||||
|
|||||||
@@ -1,55 +0,0 @@
|
|||||||
# syntax=docker/dockerfile:1
|
|
||||||
|
|
||||||
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.17
|
|
||||||
|
|
||||||
# set version label
|
|
||||||
ARG BUILD_DATE
|
|
||||||
ARG VERSION
|
|
||||||
ARG HEIMDALL_RELEASE
|
|
||||||
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
|
|
||||||
LABEL maintainer="aptalca"
|
|
||||||
|
|
||||||
# environment settings
|
|
||||||
ENV S6_BEHAVIOUR_IF_STAGE2_FAILS=2
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
echo "**** install runtime packages ****" && \
|
|
||||||
apk add --no-cache --upgrade \
|
|
||||||
php81-ctype \
|
|
||||||
php81-curl \
|
|
||||||
php81-intl \
|
|
||||||
php81-pdo_pgsql \
|
|
||||||
php81-pdo_sqlite \
|
|
||||||
php81-pdo_mysql \
|
|
||||||
php81-tokenizer \
|
|
||||||
php81-zip && \
|
|
||||||
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 "**** install heimdall ****" && \
|
|
||||||
mkdir -p \
|
|
||||||
/heimdall && \
|
|
||||||
if [ -z ${HEIMDALL_RELEASE+x} ]; then \
|
|
||||||
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/2.x" \
|
|
||||||
| awk '/sha/{print $4;exit}' FS='[""]'); \
|
|
||||||
fi && \
|
|
||||||
curl -o \
|
|
||||||
/tmp/heimdall.tar.gz -L \
|
|
||||||
"https://github.com/linuxserver/Heimdall/archive/${HEIMDALL_RELEASE}.tar.gz" && \
|
|
||||||
mkdir -p \
|
|
||||||
/app/www-tmp && \
|
|
||||||
tar xf \
|
|
||||||
/tmp/heimdall.tar.gz -C \
|
|
||||||
/app/www-tmp --strip-components=1 && \
|
|
||||||
echo "**** cleanup ****" && \
|
|
||||||
rm -rf \
|
|
||||||
/tmp/*
|
|
||||||
|
|
||||||
# add local files
|
|
||||||
COPY root/ /
|
|
||||||
|
|
||||||
# ports and volumes
|
|
||||||
EXPOSE 80 443
|
|
||||||
VOLUME /config
|
|
||||||
160
Jenkinsfile
vendored
160
Jenkinsfile
vendored
@@ -16,7 +16,6 @@ pipeline {
|
|||||||
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
|
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
|
||||||
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
|
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
|
||||||
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
|
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
|
||||||
SCARF_TOKEN=credentials('scarf_api_key')
|
|
||||||
EXT_GIT_BRANCH = '2.x'
|
EXT_GIT_BRANCH = '2.x'
|
||||||
EXT_USER = 'linuxserver'
|
EXT_USER = 'linuxserver'
|
||||||
EXT_REPO = 'Heimdall'
|
EXT_REPO = 'Heimdall'
|
||||||
@@ -173,7 +172,7 @@ pipeline {
|
|||||||
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + 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
|
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
|
||||||
if (env.MULTIARCH == 'true') {
|
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
|
env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||||
} else {
|
} else {
|
||||||
env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
|
||||||
}
|
}
|
||||||
@@ -196,7 +195,7 @@ pipeline {
|
|||||||
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/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
|
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
|
||||||
if (env.MULTIARCH == 'true') {
|
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
|
env.CI_TAGS = 'amd64-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 {
|
} else {
|
||||||
env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
|
||||||
}
|
}
|
||||||
@@ -219,7 +218,7 @@ pipeline {
|
|||||||
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/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
|
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
|
||||||
if (env.MULTIARCH == 'true') {
|
if (env.MULTIARCH == 'true') {
|
||||||
env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm32v7-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||||
} else {
|
} else {
|
||||||
env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
env.CI_TAGS = 'development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
|
||||||
}
|
}
|
||||||
@@ -290,7 +289,7 @@ pipeline {
|
|||||||
echo "Jenkinsfile is up to date."
|
echo "Jenkinsfile is up to date."
|
||||||
fi
|
fi
|
||||||
# Stage 2 - Delete old templates
|
# 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"
|
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"
|
||||||
for i in ${OLD_TEMPLATES}; do
|
for i in ${OLD_TEMPLATES}; do
|
||||||
if [[ -f "${i}" ]]; then
|
if [[ -f "${i}" ]]; then
|
||||||
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
|
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
|
||||||
@@ -326,24 +325,25 @@ pipeline {
|
|||||||
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
|
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
|
||||||
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
|
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
|
||||||
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
|
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
|
||||||
|
cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || :
|
||||||
cd ${TEMPDIR}/repo/${LS_REPO}/
|
cd ${TEMPDIR}/repo/${LS_REPO}/
|
||||||
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
|
if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
|
||||||
echo ".jenkins-external" >> .gitignore
|
echo ".jenkins-external" >> .gitignore
|
||||||
git add .gitignore
|
git add .gitignore
|
||||||
fi
|
fi
|
||||||
git add ${TEMPLATED_FILES}
|
git add readme-vars.yml ${TEMPLATED_FILES}
|
||||||
git commit -m 'Bot Updating Templated Files'
|
git commit -m 'Bot Updating Templated Files'
|
||||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
|
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
|
||||||
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||||
else
|
else
|
||||||
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
|
||||||
fi
|
fi
|
||||||
mkdir -p ${TEMPDIR}/gitbook
|
mkdir -p ${TEMPDIR}/docs
|
||||||
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
|
git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation
|
||||||
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -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}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
|
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -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
|
||||||
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
|
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/
|
||||||
cd ${TEMPDIR}/gitbook/docker-documentation/
|
cd ${TEMPDIR}/docs/docker-documentation
|
||||||
git add images/docker-${CONTAINER_NAME}.md
|
git add docs/images/docker-${CONTAINER_NAME}.md
|
||||||
git commit -m 'Bot Updating Documentation'
|
git commit -m 'Bot Updating Documentation'
|
||||||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
|
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
|
||||||
fi
|
fi
|
||||||
@@ -434,35 +434,6 @@ pipeline {
|
|||||||
"visibility":"public"}' '''
|
"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
|
|
||||||
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 Container
|
||||||
############### */
|
############### */
|
||||||
@@ -525,44 +496,6 @@ pipeline {
|
|||||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Build ARMHF') {
|
|
||||||
agent {
|
|
||||||
label 'ARMHF'
|
|
||||||
}
|
|
||||||
steps {
|
|
||||||
echo "Running on node: ${NODE_NAME}"
|
|
||||||
echo 'Logging into Github'
|
|
||||||
sh '''#! /bin/bash
|
|
||||||
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
|
|
||||||
'''
|
|
||||||
sh "sed -r -i 's|(^FROM .*)|\\1\\n\\nENV LSIO_FIRST_PARTY=true|g' Dockerfile.armhf"
|
|
||||||
sh "docker buildx build \
|
|
||||||
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
|
|
||||||
--label \"org.opencontainers.image.authors=linuxserver.io\" \
|
|
||||||
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-heimdall/packages\" \
|
|
||||||
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-heimdall\" \
|
|
||||||
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-heimdall\" \
|
|
||||||
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
|
|
||||||
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
|
|
||||||
--label \"org.opencontainers.image.vendor=linuxserver.io\" \
|
|
||||||
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
|
|
||||||
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
|
|
||||||
--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.armhf -t ${IMAGE}:arm32v7-${META_TAG} --platform=linux/arm/v7 \
|
|
||||||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
|
|
||||||
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
|
|
||||||
retry(5) {
|
|
||||||
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
|
|
||||||
}
|
|
||||||
sh '''#! /bin/bash
|
|
||||||
containers=$(docker ps -aq)
|
|
||||||
if [[ -n "${containers}" ]]; then
|
|
||||||
docker stop ${containers}
|
|
||||||
fi
|
|
||||||
docker system prune -af --volumes || : '''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Build ARM64') {
|
stage('Build ARM64') {
|
||||||
agent {
|
agent {
|
||||||
label 'ARM64'
|
label 'ARM64'
|
||||||
@@ -703,9 +636,7 @@ pipeline {
|
|||||||
set -e
|
set -e
|
||||||
docker pull ghcr.io/linuxserver/ci:latest
|
docker pull ghcr.io/linuxserver/ci:latest
|
||||||
if [ "${MULTIARCH}" == "true" ]; then
|
if [ "${MULTIARCH}" == "true" ]; 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 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}
|
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
||||||
fi
|
fi
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
@@ -808,8 +739,6 @@ pipeline {
|
|||||||
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --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
|
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
|
||||||
if [ "${CI}" == "false" ]; then
|
if [ "${CI}" == "false" ]; then
|
||||||
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
|
|
||||||
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
|
|
||||||
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
|
||||||
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
|
||||||
fi
|
fi
|
||||||
@@ -817,49 +746,47 @@ pipeline {
|
|||||||
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
|
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
|
||||||
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-development
|
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-development
|
||||||
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
||||||
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
|
|
||||||
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-development
|
|
||||||
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
|
|
||||||
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||||
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-development
|
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-development
|
||||||
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||||
if [ -n "${SEMVER}" ]; then
|
if [ -n "${SEMVER}" ]; then
|
||||||
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
|
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}
|
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||||
fi
|
fi
|
||||||
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
|
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
|
||||||
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
|
||||||
docker push ${MANIFESTIMAGE}:amd64-development
|
docker push ${MANIFESTIMAGE}:amd64-development
|
||||||
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
|
|
||||||
docker push ${MANIFESTIMAGE}:arm32v7-development
|
|
||||||
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
|
|
||||||
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||||
docker push ${MANIFESTIMAGE}:arm64v8-development
|
docker push ${MANIFESTIMAGE}:arm64v8-development
|
||||||
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
|
||||||
if [ -n "${SEMVER}" ]; then
|
if [ -n "${SEMVER}" ]; then
|
||||||
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
|
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
|
||||||
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
|
|
||||||
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
||||||
fi
|
fi
|
||||||
docker manifest push --purge ${MANIFESTIMAGE}:development || :
|
docker manifest push --purge ${MANIFESTIMAGE}:development || :
|
||||||
docker manifest create ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm32v7-development ${MANIFESTIMAGE}:arm64v8-development
|
docker manifest create ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm64v8-development
|
||||||
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm32v7-development --os linux --arch arm
|
|
||||||
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm64v8-development --os linux --arch arm64 --variant v8
|
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm64v8-development --os linux --arch arm64 --variant v8
|
||||||
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
|
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
|
||||||
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
|
||||||
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
|
|
||||||
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
|
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 push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
|
||||||
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${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}: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
|
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
|
||||||
if [ -n "${SEMVER}" ]; then
|
if [ -n "${SEMVER}" ]; then
|
||||||
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
|
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
|
||||||
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
|
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${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
|
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
|
||||||
fi
|
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}:development
|
||||||
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
|
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
|
||||||
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
|
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
|
||||||
@@ -902,6 +829,41 @@ pipeline {
|
|||||||
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
|
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Add protection to the release branch
|
||||||
|
stage('Github-Release-Branch-Protection') {
|
||||||
|
when {
|
||||||
|
branch "development"
|
||||||
|
environment name: 'CHANGE_ID', value: ''
|
||||||
|
environment name: 'EXIT_STATUS', value: ''
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
echo "Setting up protection for release branch development"
|
||||||
|
sh '''#! /bin/bash
|
||||||
|
curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/development/protection \
|
||||||
|
-d $(jq -c . << EOF
|
||||||
|
{
|
||||||
|
"required_status_checks": null,
|
||||||
|
"enforce_admins": false,
|
||||||
|
"required_pull_request_reviews": {
|
||||||
|
"dismiss_stale_reviews": false,
|
||||||
|
"require_code_owner_reviews": false,
|
||||||
|
"require_last_push_approval": false,
|
||||||
|
"required_approving_review_count": 1
|
||||||
|
},
|
||||||
|
"restrictions": null,
|
||||||
|
"required_linear_history": false,
|
||||||
|
"allow_force_pushes": false,
|
||||||
|
"allow_deletions": false,
|
||||||
|
"block_creations": false,
|
||||||
|
"required_conversation_resolution": true,
|
||||||
|
"lock_branch": false,
|
||||||
|
"allow_fork_syncing": false,
|
||||||
|
"required_signatures": false
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
) '''
|
||||||
|
}
|
||||||
|
}
|
||||||
// Use helper container to sync the current README on master to the dockerhub endpoint
|
// Use helper container to sync the current README on master to the dockerhub endpoint
|
||||||
stage('Sync-README') {
|
stage('Sync-README') {
|
||||||
when {
|
when {
|
||||||
|
|||||||
139
README.md
139
README.md
@@ -1,6 +1,5 @@
|
|||||||
<!-- DO NOT EDIT THIS FILE MANUALLY -->
|
<!-- DO NOT EDIT THIS FILE MANUALLY -->
|
||||||
<!-- Please read the https://github.com/linuxserver/docker-heimdall/blob/development/.github/CONTRIBUTING.md -->
|
<!-- Please read https://github.com/linuxserver/docker-heimdall/blob/development/.github/CONTRIBUTING.md -->
|
||||||
|
|
||||||
[](https://linuxserver.io)
|
[](https://linuxserver.io)
|
||||||
|
|
||||||
[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
|
[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
|
||||||
@@ -60,7 +59,7 @@ The architectures supported by this image are:
|
|||||||
| :----: | :----: | ---- |
|
| :----: | :----: | ---- |
|
||||||
| x86-64 | ✅ | amd64-\<version tag\> |
|
| x86-64 | ✅ | amd64-\<version tag\> |
|
||||||
| arm64 | ✅ | arm64v8-\<version tag\> |
|
| arm64 | ✅ | arm64v8-\<version tag\> |
|
||||||
| armhf | ✅ | arm32v7-\<version tag\> |
|
| armhf | ❌ | |
|
||||||
|
|
||||||
## Version Tags
|
## Version Tags
|
||||||
|
|
||||||
@@ -70,6 +69,7 @@ This image provides various versions that are available via tags. Please read th
|
|||||||
| :----: | :----: |--- |
|
| :----: | :----: |--- |
|
||||||
| latest | ✅ | Stable Heimdall releases. |
|
| latest | ✅ | Stable Heimdall releases. |
|
||||||
| development | ✅ | Latest commit from the github 2.x branch. |
|
| development | ✅ | Latest commit from the github 2.x branch. |
|
||||||
|
|
||||||
## Application Setup
|
## Application Setup
|
||||||
|
|
||||||
Access the web gui at http://SERVERIP:PORT
|
Access the web gui at http://SERVERIP:PORT
|
||||||
@@ -81,7 +81,7 @@ This image now supports password protection through htpasswd. Run the following
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Here are some example snippets to help you get started creating a container.
|
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
|
||||||
|
|
||||||
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
|
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
|
||||||
|
|
||||||
@@ -117,12 +117,11 @@ docker run -d \
|
|||||||
-v /path/to/appdata/config:/config \
|
-v /path/to/appdata/config:/config \
|
||||||
--restart unless-stopped \
|
--restart unless-stopped \
|
||||||
lscr.io/linuxserver/heimdall:development
|
lscr.io/linuxserver/heimdall:development
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
|
Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
|
||||||
|
|
||||||
| Parameter | Function |
|
| Parameter | Function |
|
||||||
| :----: | --- |
|
| :----: | --- |
|
||||||
@@ -140,10 +139,10 @@ You can set any environment variable from a file by using a special prepend `FIL
|
|||||||
As an example:
|
As an example:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
-e FILE__PASSWORD=/run/secrets/mysecretpassword
|
-e FILE__MYVAR=/run/secrets/mysecretvariable
|
||||||
```
|
```
|
||||||
|
|
||||||
Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
|
Will set the environment variable `MYVAR` based on the contents of the `/run/secrets/mysecretvariable` file.
|
||||||
|
|
||||||
## Umask for running applications
|
## Umask for running applications
|
||||||
|
|
||||||
@@ -152,15 +151,20 @@ Keep in mind umask is not chmod it subtracts from permissions based on it's valu
|
|||||||
|
|
||||||
## User / Group Identifiers
|
## User / Group Identifiers
|
||||||
|
|
||||||
When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
|
When using volumes (`-v` flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
|
||||||
|
|
||||||
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
|
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
|
||||||
|
|
||||||
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
|
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id your_user` as below:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ id username
|
id your_user
|
||||||
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
|
```
|
||||||
|
|
||||||
|
Example output:
|
||||||
|
|
||||||
|
```text
|
||||||
|
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Docker Mods
|
## Docker Mods
|
||||||
@@ -171,12 +175,29 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
|
|||||||
|
|
||||||
## Support Info
|
## Support Info
|
||||||
|
|
||||||
* Shell access whilst the container is running: `docker exec -it heimdall /bin/bash`
|
* Shell access whilst the container is running:
|
||||||
* To monitor the logs of the container in realtime: `docker logs -f heimdall`
|
|
||||||
* container version number
|
```bash
|
||||||
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' heimdall`
|
docker exec -it heimdall /bin/bash
|
||||||
* image version number
|
```
|
||||||
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/heimdall:development`
|
|
||||||
|
* To monitor the logs of the container in realtime:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker logs -f heimdall
|
||||||
|
```
|
||||||
|
|
||||||
|
* Container version number:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker inspect -f '{{ index .Config.Labels "build_version" }}' heimdall
|
||||||
|
```
|
||||||
|
|
||||||
|
* Image version number:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/heimdall:development
|
||||||
|
```
|
||||||
|
|
||||||
## Updating Info
|
## Updating Info
|
||||||
|
|
||||||
@@ -186,38 +207,83 @@ Below are the instructions for updating containers:
|
|||||||
|
|
||||||
### Via Docker Compose
|
### Via Docker Compose
|
||||||
|
|
||||||
* Update all images: `docker-compose pull`
|
* Update images:
|
||||||
* or update a single image: `docker-compose pull heimdall`
|
* All images:
|
||||||
* Let compose update all containers as necessary: `docker-compose up -d`
|
|
||||||
* or update a single container: `docker-compose up -d heimdall`
|
```bash
|
||||||
* You can also remove the old dangling images: `docker image prune`
|
docker-compose pull
|
||||||
|
```
|
||||||
|
|
||||||
|
* Single image:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose pull heimdall
|
||||||
|
```
|
||||||
|
|
||||||
|
* Update containers:
|
||||||
|
* All containers:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
* Single container:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d heimdall
|
||||||
|
```
|
||||||
|
|
||||||
|
* You can also remove the old dangling images:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker image prune
|
||||||
|
```
|
||||||
|
|
||||||
### Via Docker Run
|
### Via Docker Run
|
||||||
|
|
||||||
* Update the image: `docker pull lscr.io/linuxserver/heimdall:development`
|
* Update the image:
|
||||||
* Stop the running container: `docker stop heimdall`
|
|
||||||
* Delete the container: `docker rm heimdall`
|
```bash
|
||||||
|
docker pull lscr.io/linuxserver/heimdall:development
|
||||||
|
```
|
||||||
|
|
||||||
|
* Stop the running container:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker stop heimdall
|
||||||
|
```
|
||||||
|
|
||||||
|
* Delete the container:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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)
|
* 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)
|
||||||
* You can also remove the old dangling images: `docker image prune`
|
* You can also remove the old dangling images:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker image prune
|
||||||
|
```
|
||||||
|
|
||||||
### Via Watchtower auto-updater (only use if you don't remember the original parameters)
|
### Via Watchtower auto-updater (only use 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:
|
* Pull the latest image at its tag and replace it with the same env variables in one run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
containrrr/watchtower \
|
containrrr/watchtower \
|
||||||
--run-once heimdall
|
--run-once heimdall
|
||||||
```
|
```
|
||||||
|
|
||||||
* You can also remove the old dangling images: `docker image prune`
|
* You can also remove the old dangling images: `docker image prune`
|
||||||
|
|
||||||
**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
|
**warning**: We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
|
||||||
|
|
||||||
### Image Update Notifications - Diun (Docker Image Update Notifier)
|
### Image Update Notifications - Diun (Docker Image Update Notifier)
|
||||||
|
|
||||||
* We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
|
**tip**: We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
|
||||||
|
|
||||||
## Building locally
|
## Building locally
|
||||||
|
|
||||||
@@ -242,6 +308,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
|
|||||||
|
|
||||||
## Versions
|
## Versions
|
||||||
|
|
||||||
|
* **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf.
|
||||||
* **13.04.23:** - Move ssl.conf include to default.conf.
|
* **13.04.23:** - Move ssl.conf include to default.conf.
|
||||||
* **20.01.23:** - Rebase to alpine 3.17 with php8.1.
|
* **20.01.23:** - Rebase to alpine 3.17 with php8.1.
|
||||||
* **14.11.22:** - Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base)).
|
* **14.11.22:** - Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base)).
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ external_type: github_commit
|
|||||||
release_type: prerelease
|
release_type: prerelease
|
||||||
release_tag: development
|
release_tag: development
|
||||||
ls_branch: development
|
ls_branch: development
|
||||||
|
build_armhf: false
|
||||||
repo_vars:
|
repo_vars:
|
||||||
- EXT_GIT_BRANCH = '2.x'
|
- EXT_GIT_BRANCH = '2.x'
|
||||||
- EXT_USER = 'linuxserver'
|
- EXT_USER = 'linuxserver'
|
||||||
|
|||||||
@@ -1,227 +1,228 @@
|
|||||||
NAME VERSION TYPE
|
NAME VERSION TYPE
|
||||||
alpine-baselayout 3.4.0-r0 apk
|
Reads from stdin without leaking info to the terminal and outputs back to stdout 1, 0, 0, 0 dotnet
|
||||||
alpine-baselayout-data 3.4.0-r0 apk
|
alpine-baselayout 3.4.3-r1 apk
|
||||||
alpine-keys 2.4-r1 apk
|
alpine-baselayout-data 3.4.3-r1 apk
|
||||||
alpine-release 3.17.3-r0 apk
|
alpine-keys 2.4-r1 apk
|
||||||
apache2-utils 2.4.57-r0 apk
|
alpine-release 3.18.4-r0 apk
|
||||||
apk-tools 2.12.10-r1 apk
|
apache2-utils 2.4.58-r0 apk
|
||||||
apr 1.7.2-r0 apk
|
apk-tools 2.14.0-r2 apk
|
||||||
apr-util 1.6.3-r0 apk
|
apr 1.7.4-r0 apk
|
||||||
argon2-libs 20190702-r2 apk
|
apr-util 1.6.3-r1 apk
|
||||||
barryvdh/laravel-ide-helper v2.12.3 php-composer
|
argon2-libs 20190702-r4 apk
|
||||||
barryvdh/reflection-docblock v2.1.0 php-composer
|
barryvdh/laravel-ide-helper v2.12.3 php-composer
|
||||||
bash 5.2.15-r0 apk
|
barryvdh/reflection-docblock v2.1.0 php-composer
|
||||||
brick/math 0.9.3 php-composer
|
bash 5.2.15-r5 apk
|
||||||
brotli-libs 1.0.9-r9 apk
|
brick/math 0.9.3 php-composer
|
||||||
busybox 1.35.0 binary
|
brotli-libs 1.0.9-r14 apk
|
||||||
busybox 1.35.0-r29 apk
|
busybox 1.36.1-r4 apk
|
||||||
busybox-binsh 1.35.0-r29 apk
|
busybox-binsh 1.36.1-r4 apk
|
||||||
ca-certificates 20230506-r0 apk
|
ca-certificates 20230506-r0 apk
|
||||||
ca-certificates-bundle 20230506-r0 apk
|
ca-certificates-bundle 20230506-r0 apk
|
||||||
clue/stream-filter v1.6.0 php-composer
|
clue/stream-filter v1.6.0 php-composer
|
||||||
composer/pcre 3.1.0 php-composer
|
composer/pcre 3.1.0 php-composer
|
||||||
coreutils 9.1-r0 apk
|
coreutils 9.3-r1 apk
|
||||||
curl 8.1.0-r1 apk
|
curl 8.4.0-r0 apk
|
||||||
dflydev/dot-access-data v3.0.2 php-composer
|
dflydev/dot-access-data v3.0.2 php-composer
|
||||||
doctrine/cache 2.2.0 php-composer
|
doctrine/cache 2.2.0 php-composer
|
||||||
doctrine/dbal 3.5.1 php-composer
|
doctrine/dbal 3.5.1 php-composer
|
||||||
doctrine/deprecations v1.0.0 php-composer
|
doctrine/deprecations v1.0.0 php-composer
|
||||||
doctrine/event-manager 1.2.0 php-composer
|
doctrine/event-manager 1.2.0 php-composer
|
||||||
doctrine/inflector 2.0.6 php-composer
|
doctrine/inflector 2.0.6 php-composer
|
||||||
doctrine/instantiator 1.4.1 php-composer
|
doctrine/instantiator 1.4.1 php-composer
|
||||||
doctrine/lexer 1.2.3 php-composer
|
doctrine/lexer 1.2.3 php-composer
|
||||||
dragonmantank/cron-expression v3.3.2 php-composer
|
dragonmantank/cron-expression v3.3.2 php-composer
|
||||||
egulias/email-validator 2.1.25 php-composer
|
egulias/email-validator 2.1.25 php-composer
|
||||||
facade/flare-client-php 1.10.0 php-composer
|
facade/flare-client-php 1.10.0 php-composer
|
||||||
facade/ignition 2.17.6 php-composer
|
facade/ignition 2.17.6 php-composer
|
||||||
facade/ignition-contracts 1.0.2 php-composer
|
facade/ignition-contracts 1.0.2 php-composer
|
||||||
fideloper/proxy 4.4.2 php-composer
|
fideloper/proxy 4.4.2 php-composer
|
||||||
filp/whoops 2.14.6 php-composer
|
filp/whoops 2.14.6 php-composer
|
||||||
fzaninotto/faker v1.9.2 php-composer
|
fzaninotto/faker v1.9.2 php-composer
|
||||||
git 2.38.5-r0 apk
|
git 2.40.1-r0 apk
|
||||||
graham-campbell/bounded-cache v1.3.0 php-composer
|
graham-campbell/bounded-cache v1.3.0 php-composer
|
||||||
graham-campbell/github v10.6.0 php-composer
|
graham-campbell/github v10.6.0 php-composer
|
||||||
graham-campbell/manager v4.7.0 php-composer
|
graham-campbell/manager v4.7.0 php-composer
|
||||||
graham-campbell/result-type v1.1.0 php-composer
|
graham-campbell/result-type v1.1.0 php-composer
|
||||||
guzzlehttp/guzzle 7.5.0 php-composer
|
guzzlehttp/guzzle 7.5.0 php-composer
|
||||||
guzzlehttp/promises 1.5.2 php-composer
|
guzzlehttp/promises 1.5.2 php-composer
|
||||||
guzzlehttp/psr7 2.4.3 php-composer
|
guzzlehttp/psr7 2.4.3 php-composer
|
||||||
hamcrest/hamcrest-php v2.0.1 php-composer
|
hamcrest/hamcrest-php v2.0.1 php-composer
|
||||||
icu-data-en 72.1-r1 apk
|
icu-data-en 73.2-r2 apk
|
||||||
icu-libs 72.1-r1 apk
|
icu-libs 73.2-r2 apk
|
||||||
jq 1.6-r2 apk
|
jq 1.6-r3 apk
|
||||||
knplabs/github-api v3.6.0 php-composer
|
knplabs/github-api v3.6.0 php-composer
|
||||||
laravel/framework v8.83.26 php-composer
|
laravel/framework v8.83.26 php-composer
|
||||||
laravel/serializable-closure v1.2.2 php-composer
|
laravel/serializable-closure v1.2.2 php-composer
|
||||||
laravel/tinker v2.7.3 php-composer
|
laravel/tinker v2.7.3 php-composer
|
||||||
laravel/ui v3.4.6 php-composer
|
laravel/ui v3.4.6 php-composer
|
||||||
laravelcollective/html v6.3.0 php-composer
|
laravelcollective/html v6.3.0 php-composer
|
||||||
league/commonmark 2.3.7 php-composer
|
league/commonmark 2.3.7 php-composer
|
||||||
league/config v1.1.1 php-composer
|
league/config v1.1.1 php-composer
|
||||||
league/flysystem 1.1.10 php-composer
|
league/flysystem 1.1.10 php-composer
|
||||||
league/mime-type-detection 1.11.0 php-composer
|
league/mime-type-detection 1.11.0 php-composer
|
||||||
libacl 2.3.1-r1 apk
|
libacl 2.3.1-r3 apk
|
||||||
libattr 2.5.1-r2 apk
|
libattr 2.5.1-r4 apk
|
||||||
libbsd 0.11.7-r0 apk
|
libbsd 0.11.7-r1 apk
|
||||||
libbz2 1.0.8-r4 apk
|
libbz2 1.0.8-r5 apk
|
||||||
libc-utils 0.7.2-r3 apk
|
libc-utils 0.7.2-r5 apk
|
||||||
libcrypto3 3.0.8-r4 apk
|
libcrypto3 3.1.4-r0 apk
|
||||||
libcurl 8.1.1-r1 apk
|
libcurl 8.4.0-r0 apk
|
||||||
libedit 20221030.3.1-r0 apk
|
libedit 20221030.3.1-r1 apk
|
||||||
libexpat 2.5.0-r0 apk
|
libexpat 2.5.0-r1 apk
|
||||||
libgcc 12.2.1_git20220924-r4 apk
|
libgcc 12.2.1_git20220924-r10 apk
|
||||||
libintl 0.21.1-r1 apk
|
libidn2 2.3.4-r1 apk
|
||||||
libmd 1.0.4-r0 apk
|
libintl 0.21.1-r7 apk
|
||||||
libpq 15.3-r0 apk
|
libmd 1.0.4-r2 apk
|
||||||
libproc 3.3.17-r2 apk
|
libncursesw 6.4_p20230506-r0 apk
|
||||||
libssl3 3.0.8-r4 apk
|
libpq 15.4-r0 apk
|
||||||
libstdc++ 12.2.1_git20220924-r4 apk
|
libproc2 4.0.4-r0 apk
|
||||||
libuuid 2.38.1-r1 apk
|
libssl3 3.1.4-r0 apk
|
||||||
libxml2 2.10.4-r0 apk
|
libstdc++ 12.2.1_git20220924-r10 apk
|
||||||
libzip 1.9.2-r2 apk
|
libunistring 1.1-r1 apk
|
||||||
linux-pam 1.5.2-r1 apk
|
libuuid 2.38.1-r8 apk
|
||||||
logrotate 3.20.1-r3 apk
|
libxml2 2.11.4-r0 apk
|
||||||
mockery/mockery 1.5.1 php-composer
|
libzip 1.9.2-r2 apk
|
||||||
monolog/monolog 2.8.0 php-composer
|
linux-pam 1.5.2-r10 apk
|
||||||
musl 1.2.3-r5 apk
|
logrotate 3.21.0-r1 apk
|
||||||
musl-utils 1.2.3-r5 apk
|
mockery/mockery 1.5.1 php-composer
|
||||||
myclabs/deep-copy 1.11.0 php-composer
|
monolog/monolog 2.8.0 php-composer
|
||||||
nano 7.0-r0 apk
|
musl 1.2.4-r2 apk
|
||||||
ncurses-libs 6.3_p20221119-r0 apk
|
musl-utils 1.2.4-r2 apk
|
||||||
ncurses-terminfo-base 6.3_p20221119-r0 apk
|
myclabs/deep-copy 1.11.0 php-composer
|
||||||
nesbot/carbon 2.63.0 php-composer
|
nano 7.2-r1 apk
|
||||||
netcat-openbsd 1.130-r4 apk
|
ncurses-terminfo-base 6.4_p20230506-r0 apk
|
||||||
nette/schema v1.2.3 php-composer
|
nesbot/carbon 2.63.0 php-composer
|
||||||
nette/utils v3.2.8 php-composer
|
netcat-openbsd 1.219-r1 apk
|
||||||
nghttp2-libs 1.51.0-r0 apk
|
nette/schema v1.2.3 php-composer
|
||||||
nginx 1.22.1-r0 apk
|
nette/utils v3.2.8 php-composer
|
||||||
nikic/php-parser v4.15.2 php-composer
|
nghttp2-libs 1.57.0-r0 apk
|
||||||
nunomaduro/collision v5.11.0 php-composer
|
nginx 1.24.0-r7 apk
|
||||||
oniguruma 6.9.8-r0 apk
|
nikic/php-parser v4.15.2 php-composer
|
||||||
openssl 3.0.8-r4 apk
|
nunomaduro/collision v5.11.0 php-composer
|
||||||
opis/closure 3.6.3 php-composer
|
oniguruma 6.9.8-r1 apk
|
||||||
pcre 8.45-r2 apk
|
openssl 3.1.4-r0 apk
|
||||||
pcre2 10.42-r0 apk
|
opis/closure 3.6.3 php-composer
|
||||||
phar-io/manifest 2.0.3 php-composer
|
pcre 8.45-r3 apk
|
||||||
phar-io/version 3.2.1 php-composer
|
pcre2 10.42-r1 apk
|
||||||
php-cli 8.1.19 binary
|
phar-io/manifest 2.0.3 php-composer
|
||||||
php-fpm 8.1.19 binary
|
phar-io/version 3.2.1 php-composer
|
||||||
php-http/cache-plugin 1.7.5 php-composer
|
php-http/cache-plugin 1.7.5 php-composer
|
||||||
php-http/client-common 2.6.0 php-composer
|
php-http/client-common 2.6.0 php-composer
|
||||||
php-http/discovery 1.14.3 php-composer
|
php-http/discovery 1.14.3 php-composer
|
||||||
php-http/httplug 2.3.0 php-composer
|
php-http/httplug 2.3.0 php-composer
|
||||||
php-http/message 1.13.0 php-composer
|
php-http/message 1.13.0 php-composer
|
||||||
php-http/message-factory v1.0.2 php-composer
|
php-http/message-factory v1.0.2 php-composer
|
||||||
php-http/multipart-stream-builder 1.2.0 php-composer
|
php-http/multipart-stream-builder 1.2.0 php-composer
|
||||||
php-http/promise 1.1.0 php-composer
|
php-http/promise 1.1.0 php-composer
|
||||||
php81 8.1.19-r0 apk
|
php82 8.2.10-r0 apk
|
||||||
php81-common 8.1.19-r0 apk
|
php82-common 8.2.10-r0 apk
|
||||||
php81-ctype 8.1.19-r0 apk
|
php82-ctype 8.2.10-r0 apk
|
||||||
php81-curl 8.1.19-r0 apk
|
php82-curl 8.2.10-r0 apk
|
||||||
php81-fileinfo 8.1.19-r0 apk
|
php82-fileinfo 8.2.10-r0 apk
|
||||||
php81-fpm 8.1.19-r0 apk
|
php82-fpm 8.2.10-r0 apk
|
||||||
php81-intl 8.1.19-r0 apk
|
php82-iconv 8.2.10-r0 apk
|
||||||
php81-mbstring 8.1.19-r0 apk
|
php82-intl 8.2.10-r0 apk
|
||||||
php81-mysqlnd 8.1.19-r0 apk
|
php82-mbstring 8.2.10-r0 apk
|
||||||
php81-openssl 8.1.19-r0 apk
|
php82-mysqlnd 8.2.10-r0 apk
|
||||||
php81-pdo 8.1.19-r0 apk
|
php82-openssl 8.2.10-r0 apk
|
||||||
php81-pdo_mysql 8.1.19-r0 apk
|
php82-pdo 8.2.10-r0 apk
|
||||||
php81-pdo_pgsql 8.1.19-r0 apk
|
php82-pdo_mysql 8.2.10-r0 apk
|
||||||
php81-pdo_sqlite 8.1.19-r0 apk
|
php82-pdo_pgsql 8.2.10-r0 apk
|
||||||
php81-session 8.1.19-r0 apk
|
php82-pdo_sqlite 8.2.10-r0 apk
|
||||||
php81-simplexml 8.1.19-r0 apk
|
php82-phar 8.2.10-r0 apk
|
||||||
php81-tokenizer 8.1.19-r0 apk
|
php82-session 8.2.10-r0 apk
|
||||||
php81-xml 8.1.19-r0 apk
|
php82-simplexml 8.2.10-r0 apk
|
||||||
php81-xmlwriter 8.1.19-r0 apk
|
php82-tokenizer 8.2.10-r0 apk
|
||||||
php81-zip 8.1.19-r0 apk
|
php82-xml 8.2.10-r0 apk
|
||||||
phpdocumentor/reflection-common 2.2.0 php-composer
|
php82-xmlwriter 8.2.10-r0 apk
|
||||||
phpdocumentor/type-resolver 1.6.2 php-composer
|
php82-zip 8.2.10-r0 apk
|
||||||
phpoption/phpoption 1.9.0 php-composer
|
phpdocumentor/reflection-common 2.2.0 php-composer
|
||||||
phpunit/php-code-coverage 9.2.19 php-composer
|
phpdocumentor/type-resolver 1.6.2 php-composer
|
||||||
phpunit/php-file-iterator 3.0.6 php-composer
|
phpoption/phpoption 1.9.0 php-composer
|
||||||
phpunit/php-invoker 3.1.1 php-composer
|
phpunit/php-code-coverage 9.2.19 php-composer
|
||||||
phpunit/php-text-template 2.0.4 php-composer
|
phpunit/php-file-iterator 3.0.6 php-composer
|
||||||
phpunit/php-timer 5.0.3 php-composer
|
phpunit/php-invoker 3.1.1 php-composer
|
||||||
phpunit/phpunit 9.5.26 php-composer
|
phpunit/php-text-template 2.0.4 php-composer
|
||||||
popt 1.19-r0 apk
|
phpunit/php-timer 5.0.3 php-composer
|
||||||
procps 3.3.17-r2 apk
|
phpunit/phpunit 9.5.26 php-composer
|
||||||
psr/cache 1.0.1 php-composer
|
popt 1.19-r2 apk
|
||||||
psr/container 1.1.2 php-composer
|
procps-ng 4.0.4-r0 apk
|
||||||
psr/event-dispatcher 1.0.0 php-composer
|
psr/cache 1.0.1 php-composer
|
||||||
psr/http-client 1.0.1 php-composer
|
psr/container 1.1.2 php-composer
|
||||||
psr/http-factory 1.0.1 php-composer
|
psr/event-dispatcher 1.0.0 php-composer
|
||||||
psr/http-message 1.0.1 php-composer
|
psr/http-client 1.0.1 php-composer
|
||||||
psr/log 1.1.4 php-composer
|
psr/http-factory 1.0.1 php-composer
|
||||||
psr/simple-cache 1.0.1 php-composer
|
psr/http-message 1.0.1 php-composer
|
||||||
psy/psysh v0.11.9 php-composer
|
psr/log 1.1.4 php-composer
|
||||||
ralouphie/getallheaders 3.0.3 php-composer
|
psr/simple-cache 1.0.1 php-composer
|
||||||
ramsey/collection 1.2.2 php-composer
|
psy/psysh v0.11.9 php-composer
|
||||||
ramsey/uuid 4.2.3 php-composer
|
ralouphie/getallheaders 3.0.3 php-composer
|
||||||
readline 8.2.0-r0 apk
|
ramsey/collection 1.2.2 php-composer
|
||||||
scanelf 1.3.5-r1 apk
|
ramsey/uuid 4.2.3 php-composer
|
||||||
sebastian/cli-parser 1.0.1 php-composer
|
readline 8.2.1-r1 apk
|
||||||
sebastian/code-unit 1.0.8 php-composer
|
scanelf 1.3.7-r1 apk
|
||||||
sebastian/code-unit-reverse-lookup 2.0.3 php-composer
|
sebastian/cli-parser 1.0.1 php-composer
|
||||||
sebastian/comparator 4.0.8 php-composer
|
sebastian/code-unit 1.0.8 php-composer
|
||||||
sebastian/complexity 2.0.2 php-composer
|
sebastian/code-unit-reverse-lookup 2.0.3 php-composer
|
||||||
sebastian/diff 4.0.4 php-composer
|
sebastian/comparator 4.0.8 php-composer
|
||||||
sebastian/environment 5.1.4 php-composer
|
sebastian/complexity 2.0.2 php-composer
|
||||||
sebastian/exporter 4.0.5 php-composer
|
sebastian/diff 4.0.4 php-composer
|
||||||
sebastian/global-state 5.0.5 php-composer
|
sebastian/environment 5.1.4 php-composer
|
||||||
sebastian/lines-of-code 1.0.3 php-composer
|
sebastian/exporter 4.0.5 php-composer
|
||||||
sebastian/object-enumerator 4.0.4 php-composer
|
sebastian/global-state 5.0.5 php-composer
|
||||||
sebastian/object-reflector 2.0.4 php-composer
|
sebastian/lines-of-code 1.0.3 php-composer
|
||||||
sebastian/recursion-context 4.0.4 php-composer
|
sebastian/object-enumerator 4.0.4 php-composer
|
||||||
sebastian/resource-operations 3.0.3 php-composer
|
sebastian/object-reflector 2.0.4 php-composer
|
||||||
sebastian/type 3.2.0 php-composer
|
sebastian/recursion-context 4.0.4 php-composer
|
||||||
sebastian/version 3.0.2 php-composer
|
sebastian/resource-operations 3.0.3 php-composer
|
||||||
shadow 4.13-r0 apk
|
sebastian/type 3.2.0 php-composer
|
||||||
skalibs 2.12.0.1-r0 apk
|
sebastian/version 3.0.2 php-composer
|
||||||
sqlite-libs 3.40.1-r0 apk
|
shadow 4.13-r4 apk
|
||||||
squizlabs/php_codesniffer 3.7.1 php-composer
|
skalibs 2.13.1.1-r1 apk
|
||||||
ssl_client 1.35.0-r29 apk
|
sqlite-libs 3.41.2-r2 apk
|
||||||
swiftmailer/swiftmailer v6.3.0 php-composer
|
squizlabs/php_codesniffer 3.7.1 php-composer
|
||||||
symfony/cache v5.4.15 php-composer
|
ssl_client 1.36.1-r4 apk
|
||||||
symfony/cache-contracts v2.5.2 php-composer
|
swiftmailer/swiftmailer v6.3.0 php-composer
|
||||||
symfony/console v5.4.15 php-composer
|
symfony/cache v5.4.15 php-composer
|
||||||
symfony/css-selector v5.4.11 php-composer
|
symfony/cache-contracts v2.5.2 php-composer
|
||||||
symfony/deprecation-contracts v2.5.2 php-composer
|
symfony/console v5.4.15 php-composer
|
||||||
symfony/error-handler v5.4.15 php-composer
|
symfony/css-selector v5.4.11 php-composer
|
||||||
symfony/event-dispatcher v5.4.9 php-composer
|
symfony/deprecation-contracts v2.5.2 php-composer
|
||||||
symfony/event-dispatcher-contracts v2.5.2 php-composer
|
symfony/error-handler v5.4.15 php-composer
|
||||||
symfony/finder v5.4.11 php-composer
|
symfony/event-dispatcher v5.4.9 php-composer
|
||||||
symfony/http-foundation v5.4.15 php-composer
|
symfony/event-dispatcher-contracts v2.5.2 php-composer
|
||||||
symfony/http-kernel v5.4.15 php-composer
|
symfony/finder v5.4.11 php-composer
|
||||||
symfony/mime v5.4.14 php-composer
|
symfony/http-foundation v5.4.15 php-composer
|
||||||
symfony/options-resolver v5.4.11 php-composer
|
symfony/http-kernel v5.4.15 php-composer
|
||||||
symfony/polyfill-ctype v1.27.0 php-composer
|
symfony/mime v5.4.14 php-composer
|
||||||
symfony/polyfill-iconv v1.27.0 php-composer
|
symfony/options-resolver v5.4.11 php-composer
|
||||||
symfony/polyfill-intl-grapheme v1.27.0 php-composer
|
symfony/polyfill-ctype v1.27.0 php-composer
|
||||||
symfony/polyfill-intl-idn v1.27.0 php-composer
|
symfony/polyfill-iconv v1.27.0 php-composer
|
||||||
symfony/polyfill-intl-normalizer v1.27.0 php-composer
|
symfony/polyfill-intl-grapheme v1.27.0 php-composer
|
||||||
symfony/polyfill-mbstring v1.27.0 php-composer
|
symfony/polyfill-intl-idn v1.27.0 php-composer
|
||||||
symfony/polyfill-php72 v1.27.0 php-composer
|
symfony/polyfill-intl-normalizer v1.27.0 php-composer
|
||||||
symfony/polyfill-php73 v1.27.0 php-composer
|
symfony/polyfill-mbstring v1.27.0 php-composer
|
||||||
symfony/polyfill-php80 v1.27.0 php-composer
|
symfony/polyfill-php72 v1.27.0 php-composer
|
||||||
symfony/polyfill-php81 v1.27.0 php-composer
|
symfony/polyfill-php73 v1.27.0 php-composer
|
||||||
symfony/process v5.4.11 php-composer
|
symfony/polyfill-php80 v1.27.0 php-composer
|
||||||
symfony/routing v5.4.15 php-composer
|
symfony/polyfill-php81 v1.27.0 php-composer
|
||||||
symfony/service-contracts v2.5.2 php-composer
|
symfony/process v5.4.11 php-composer
|
||||||
symfony/string v5.4.15 php-composer
|
symfony/routing v5.4.15 php-composer
|
||||||
symfony/thanks v1.2.10 php-composer
|
symfony/service-contracts v2.5.2 php-composer
|
||||||
symfony/translation v5.4.14 php-composer
|
symfony/string v5.4.15 php-composer
|
||||||
symfony/translation-contracts v2.5.2 php-composer
|
symfony/thanks v1.2.10 php-composer
|
||||||
symfony/var-dumper v5.4.14 php-composer
|
symfony/translation v5.4.14 php-composer
|
||||||
symfony/var-exporter v5.4.10 php-composer
|
symfony/translation-contracts v2.5.2 php-composer
|
||||||
symfony/yaml v5.4.14 php-composer
|
symfony/var-dumper v5.4.14 php-composer
|
||||||
theseer/tokenizer 1.2.1 php-composer
|
symfony/var-exporter v5.4.10 php-composer
|
||||||
tijsverkoyen/css-to-inline-styles 2.2.5 php-composer
|
symfony/yaml v5.4.14 php-composer
|
||||||
tzdata 2023c-r0 apk
|
theseer/tokenizer 1.2.1 php-composer
|
||||||
utmps-libs 0.1.2.0-r1 apk
|
tijsverkoyen/css-to-inline-styles 2.2.5 php-composer
|
||||||
vlucas/phpdotenv v5.5.0 php-composer
|
tzdata 2023c-r1 apk
|
||||||
voku/portable-ascii 1.6.1 php-composer
|
utmps-libs 0.1.2.1-r1 apk
|
||||||
webmozart/assert 1.11.0 php-composer
|
vlucas/phpdotenv v5.5.0 php-composer
|
||||||
xz 5.2.9-r0 apk
|
voku/portable-ascii 1.6.1 php-composer
|
||||||
xz-libs 5.2.9-r0 apk
|
webmozart/assert 1.11.0 php-composer
|
||||||
zlib 1.2.13-r0 apk
|
xz-libs 5.4.3-r0 apk
|
||||||
zstd-libs 1.5.5-r0 apk
|
zlib 1.2.13-r1 apk
|
||||||
|
zstd-libs 1.5.5-r4 apk
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ 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: "arm32v7-latest"}
|
|
||||||
|
|
||||||
# development version
|
# development version
|
||||||
development_versions: true
|
development_versions: true
|
||||||
@@ -59,6 +58,7 @@ app_setup_block: |
|
|||||||
|
|
||||||
# changelog
|
# changelog
|
||||||
changelogs:
|
changelogs:
|
||||||
|
- { date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf." }
|
||||||
- { date: "13.04.23:", desc: "Move ssl.conf include to default.conf." }
|
- { date: "13.04.23:", desc: "Move ssl.conf include to default.conf." }
|
||||||
- { date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1." }
|
- { date: "20.01.23:", desc: "Rebase to alpine 3.17 with php8.1." }
|
||||||
- { date: "14.11.22:", desc: "Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))." }
|
- { date: "14.11.22:", desc: "Rebasing to alpine 3.15 with php8. Restructure nginx configs ([see changes announcement](https://info.linuxserver.io/issues/2022-08-20-nginx-base))." }
|
||||||
|
|||||||
Reference in New Issue
Block a user