diff --git a/Dockerfile b/Dockerfile index 866abf6..84e3782 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.18 +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.19 # set version label ARG BUILD_DATE @@ -17,19 +17,19 @@ RUN \ fontconfig \ mariadb-client \ memcached \ - php82-dom \ - php82-gd \ - php82-ldap \ - php82-mysqlnd \ - php82-pdo_mysql \ - php82-pecl-memcached \ - php82-tokenizer \ + php83-dom \ + php83-gd \ + php83-ldap \ + php83-mysqlnd \ + php83-pdo_mysql \ + php83-pecl-memcached \ + php83-tokenizer \ qt5-qtbase \ ttf-freefont && \ echo "**** configure php-fpm to pass env vars ****" && \ - sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php82/php-fpm.d/www.conf && \ - grep -qxF 'clear_env = no' /etc/php82/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php82/php-fpm.d/www.conf && \ - echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php82/php-fpm.conf && \ + sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php83/php-fpm.d/www.conf && \ + grep -qxF 'clear_env = no' /etc/php83/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php83/php-fpm.d/www.conf && \ + echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php83/php-fpm.conf && \ echo "**** fetch bookstack ****" && \ mkdir -p\ /app/www && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 8502dee..b67840a 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.18 +FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.19 # set version label ARG BUILD_DATE @@ -17,19 +17,19 @@ RUN \ fontconfig \ mariadb-client \ memcached \ - php82-dom \ - php82-gd \ - php82-ldap \ - php82-mysqlnd \ - php82-pdo_mysql \ - php82-pecl-memcached \ - php82-tokenizer \ + php83-dom \ + php83-gd \ + php83-ldap \ + php83-mysqlnd \ + php83-pdo_mysql \ + php83-pecl-memcached \ + php83-tokenizer \ qt5-qtbase \ ttf-freefont && \ echo "**** configure php-fpm to pass env vars ****" && \ - sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php82/php-fpm.d/www.conf && \ - grep -qxF 'clear_env = no' /etc/php82/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php82/php-fpm.d/www.conf && \ - echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php82/php-fpm.conf && \ + sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php83/php-fpm.d/www.conf && \ + grep -qxF 'clear_env = no' /etc/php83/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php83/php-fpm.d/www.conf && \ + echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php83/php-fpm.conf && \ echo "**** fetch bookstack ****" && \ mkdir -p\ /app/www && \ diff --git a/Jenkinsfile b/Jenkinsfile index e94cba4..609dd7a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -16,6 +16,7 @@ pipeline { GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab') GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0') GITLAB_NAMESPACE=credentials('gitlab-namespace-id') + DOCKERHUB_TOKEN=credentials('docker-hub-ci-pat') EXT_GIT_BRANCH = 'master' EXT_USER = 'bookstackapp' EXT_REPO = 'bookstack' @@ -61,11 +62,16 @@ pipeline { env.COMMIT_SHA = sh( script: '''git rev-parse HEAD''', returnStdout: true).trim() + env.GH_DEFAULT_BRANCH = sh( + script: '''git remote show origin | grep "HEAD branch:" | sed 's|.*HEAD branch: ||' ''', + returnStdout: true).trim() env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/' env.PULL_REQUEST = env.CHANGE_ID env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml' } + sh '''#! /bin/bash + echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" ''' script{ env.LS_RELEASE_NUMBER = sh( script: '''echo ${LS_RELEASE} |sed 's/^.*-ls//g' ''', @@ -130,7 +136,7 @@ pipeline { steps{ script{ env.EXT_RELEASE_CLEAN = sh( - script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''', + script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/ ]//g' ''', returnStdout: true).trim() def semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)\.(\d+)/ @@ -148,7 +154,7 @@ pipeline { } if (env.SEMVER != null) { - if (BRANCH_NAME != "master" && BRANCH_NAME != "main") { + if (BRANCH_NAME != "${env.GH_DEFAULT_BRANCH}") { env.SEMVER = "${env.SEMVER}-${BRANCH_NAME}" } println("SEMVER: ${env.SEMVER}") @@ -266,115 +272,150 @@ pipeline { } } steps { - sh '''#! /bin/bash - set -e - TEMPDIR=$(mktemp -d) - docker pull ghcr.io/linuxserver/jenkins-builder:latest - docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest - # 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} - cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f master - cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ - git add Jenkinsfile - git commit -m 'Bot Updating Templated Files' - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all - echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} - echo "Updating Jenkinsfile" - 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" - for i in ${OLD_TEMPLATES}; do - if [[ -f "${i}" ]]; then - TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" - fi - done - if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then - mkdir -p ${TEMPDIR}/repo - git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} - cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f master - for i in ${TEMPLATES_TO_DELETE}; do - git rm "${i}" - done - git commit -m 'Bot Updating Templated Files' - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all - echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} - echo "Deleting old and deprecated templates" - rm -Rf ${TEMPDIR} - exit 0 - else - echo "No templates to delete" - fi - # 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) - if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then - mkdir -p ${TEMPDIR}/repo - git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} - cd ${TEMPDIR}/repo/${LS_REPO} - git checkout -f master - cd ${TEMPDIR}/docker-${CONTAINER_NAME} - mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows - mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE - cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || : - cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || : - cd ${TEMPDIR}/repo/${LS_REPO}/ - if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then - echo ".jenkins-external" >> .gitignore - git add .gitignore - fi - git add readme-vars.yml ${TEMPLATED_FILES} - git commit -m 'Bot Updating Templated Files' - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all - echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} - else - echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} - fi - mkdir -p ${TEMPDIR}/docs - git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/docs/docker-documentation - 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}/docs/docker-documentation/docs/images/ - cd ${TEMPDIR}/docs/docker-documentation - git add docs/images/docker-${CONTAINER_NAME}.md - git commit -m 'Bot Updating Documentation' - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all - fi - mkdir -p ${TEMPDIR}/unraid - git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates - git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates - if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then - sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml - elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then - 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}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then - cd ${TEMPDIR}/unraid/templates/ - if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then - echo "Image is on the ignore list, marking Unraid template as deprecated" - cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ - git add -u unraid/${CONTAINER_NAME}.xml - git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || : - git commit -m 'Bot Moving Deprecated Unraid Template' || : + withCredentials([ + [ + $class: 'UsernamePasswordMultiBinding', + credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', + usernameVariable: 'DOCKERUSER', + passwordVariable: 'DOCKERPASS' + ] + ]) { + sh '''#! /bin/bash + set -e + TEMPDIR=$(mktemp -d) + docker pull ghcr.io/linuxserver/jenkins-builder:latest + docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=master -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest + # 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} + cd ${TEMPDIR}/repo/${LS_REPO} + git checkout -f master + cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/ + git add Jenkinsfile + git commit -m 'Bot Updating Templated Files' + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} + echo "Updating Jenkinsfile" + rm -Rf ${TEMPDIR} + exit 0 else - cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ - git add unraid/${CONTAINER_NAME}.xml - git commit -m 'Bot Updating Unraid Template' + echo "Jenkinsfile is up to date." fi - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git --all - fi - rm -Rf ${TEMPDIR}''' - script{ - env.FILES_UPDATED = sh( - script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''', - returnStdout: true).trim() + # 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" + for i in ${OLD_TEMPLATES}; do + if [[ -f "${i}" ]]; then + TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}" + fi + done + if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then + mkdir -p ${TEMPDIR}/repo + git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} + cd ${TEMPDIR}/repo/${LS_REPO} + git checkout -f master + for i in ${TEMPLATES_TO_DELETE}; do + git rm "${i}" + done + git commit -m 'Bot Updating Templated Files' + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} + echo "Deleting old and deprecated templates" + rm -Rf ${TEMPDIR} + exit 0 + else + echo "No templates to delete" + fi + # 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) + if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then + mkdir -p ${TEMPDIR}/repo + git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} + cd ${TEMPDIR}/repo/${LS_REPO} + git checkout -f master + cd ${TEMPDIR}/docker-${CONTAINER_NAME} + mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows + mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE + cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || : + cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || : + cd ${TEMPDIR}/repo/${LS_REPO}/ + if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then + echo ".jenkins-external" >> .gitignore + git add .gitignore + fi + git add readme-vars.yml ${TEMPLATED_FILES} + git commit -m 'Bot Updating Templated Files' + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} + else + echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} + fi + 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 + cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/docs/docker-documentation/docs/images/ + 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 + git commit -m 'Bot Updating Documentation' + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} + fi + mkdir -p ${TEMPDIR}/unraid + git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates + git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates + if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then + sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml + elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then + 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 + 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 + echo "Image is on the ignore list, marking Unraid template as deprecated" + cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ + git add -u unraid/${CONTAINER_NAME}.xml + git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || : + git commit -m 'Bot Moving Deprecated Unraid Template' || : + else + cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ + git add unraid/${CONTAINER_NAME}.xml + git commit -m 'Bot Updating Unraid Template' + fi + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git ${GH_TEMPLATES_DEFAULT_BRANCH} + 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 + 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 + DH_TOKEN=$(curl -d '{"username":"'${DOCKERUSER}'", "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 PATCH \ + -d "{\\"full_description\\":$(jq -Rsa . ${DH_README_SYNC_PATH})}" \ + https://hub.docker.com/v2/repositories/${DOCKERHUB_IMAGE} || : + else + echo "Not the default Github branch. Skipping readme sync to Docker Hub." + fi + rm -Rf ${TEMPDIR}''' + script{ + env.FILES_UPDATED = sh( + script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''', + returnStdout: true).trim() + } } } } @@ -568,7 +609,8 @@ pipeline { wait git add package_versions.txt git commit -m 'Bot Updating Package Versions' - git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER} echo "Package tag updated, stopping build process" else @@ -864,39 +906,6 @@ EOF ) ''' } } - // Use helper container to sync the current README on master to the dockerhub endpoint - stage('Sync-README') { - when { - environment name: 'CHANGE_ID', value: '' - environment name: 'EXIT_STATUS', value: '' - } - steps { - withCredentials([ - [ - $class: 'UsernamePasswordMultiBinding', - credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', - usernameVariable: 'DOCKERUSER', - passwordVariable: 'DOCKERPASS' - ] - ]) { - sh '''#! /bin/bash - set -e - TEMPDIR=$(mktemp -d) - docker pull ghcr.io/linuxserver/jenkins-builder:latest - docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest - docker pull ghcr.io/linuxserver/readme-sync - docker run --rm=true \ - -e DOCKERHUB_USERNAME=$DOCKERUSER \ - -e DOCKERHUB_PASSWORD=$DOCKERPASS \ - -e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \ - -e DOCKER_REPOSITORY=${IMAGE} \ - -e GIT_BRANCH=master \ - -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \ - ghcr.io/linuxserver/readme-sync bash -c 'node sync' - rm -Rf ${TEMPDIR} ''' - } - } - } // If this is a Pull request send the CI link as a comment on it stage('Pull Request Comment') { when { diff --git a/README.md b/README.md index 826c1e2..a043ae5 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,7 @@ docker run -d \ -e DB_DATABASE=bookstackapp \ -e QUEUE_CONNECTION= `#optional` \ -p 6875:80 \ - -v /path/to/data:/config \ + -v /path/to/bookstack/config:/config \ --restart unless-stopped \ lscr.io/linuxserver/bookstack:latest ``` @@ -174,7 +174,7 @@ Containers are configured using parameters passed at runtime (such as those abov | `-e DB_PASS=yourdbpass` | for specifying the database password (minimum 4 characters & non-alphanumeric passwords must be properly escaped.) | | `-e DB_DATABASE=bookstackapp` | for specifying the database to be used | | `-e QUEUE_CONNECTION=` | Set to `database` to enable async actions like sending email or triggering webhooks. See [documentation](https://www.bookstackapp.com/docs/admin/email-webhooks/#async-action-handling). | -| `-v /config` | this will store any uploaded data on the docker host | +| `-v /config` | Persistent config files | ## Environment variables from files (Docker secrets) @@ -245,7 +245,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to ## Updating Info -Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image. +Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image. Below are the instructions for updating containers: @@ -310,21 +310,6 @@ Below are the instructions for updating containers: docker image prune ``` -### 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: - - ```bash - docker run --rm \ - -v /var/run/docker.sock:/var/run/docker.sock \ - containrrr/watchtower \ - --run-once bookstack - ``` - -* You can also remove the old dangling images: `docker image prune` - -**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) **tip**: We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported. @@ -352,6 +337,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **23.12.23:** - Rebase to Alpine 3.19 with php 8.3. * **31.10.23:** - Further sanitize sed replace. * **07.06.23:** - Add mariadb-client for bookstack-system-cli support. * **25.05.23:** - Rebase to Alpine 3.18, deprecate armhf. diff --git a/package_versions.txt b/package_versions.txt index 776152a..ebd37d7 100644 --- a/package_versions.txt +++ b/package_versions.txt @@ -1,200 +1,207 @@ NAME VERSION TYPE Hidden Input 1, 0, 0, 0 dotnet -alpine-baselayout 3.4.3-r1 apk -alpine-baselayout-data 3.4.3-r1 apk +alpine-baselayout 3.4.3-r2 apk +alpine-baselayout-data 3.4.3-r2 apk alpine-keys 2.4-r1 apk -alpine-release 3.18.5-r0 apk -aom-libs 3.6.1-r0 apk -apache2-utils 2.4.58-r0 apk -apk-tools 2.14.0-r2 apk +alpine-release 3.19.0-r0 apk +aom-libs 3.7.1-r0 apk +apache2-utils 2.4.58-r1 apk +apk-tools 2.14.0-r5 apk apr 1.7.4-r0 apk apr-util 1.6.3-r1 apk -argon2-libs 20190702-r4 apk -aws/aws-crt-php v1.2.2 php-composer -aws/aws-sdk-php 3.283.8 php-composer +argon2-libs 20190702-r5 apk +aws/aws-crt-php v1.2.4 php-composer +aws/aws-sdk-php 3.296.8 php-composer bacon/bacon-qr-code 2.0.8 php-composer barryvdh/laravel-dompdf v2.0.1 php-composer barryvdh/laravel-snappy v1.0.2 php-composer -bash 5.2.15-r5 apk +bash 5.2.21-r0 apk brick/math 0.11.0 php-composer -brotli-libs 1.0.9-r14 apk -busybox 1.36.1-r5 apk -busybox-binsh 1.36.1-r5 apk +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-r0 apk ca-certificates 20230506-r0 apk ca-certificates-bundle 20230506-r0 apk +carbonphp/carbon-doctrine-types 2.1.0 php-composer composer 2.6.6 binary -coreutils 9.3-r1 apk +coreutils 9.4-r1 apk +coreutils-env 9.4-r1 apk +coreutils-fmt 9.4-r1 apk +coreutils-sha512sum 9.4-r1 apk curl 8.5.0-r0 apk dasprid/enum 1.0.5 php-composer -dbus-libs 1.14.8-r0 apk +dbus-libs 1.14.10-r0 apk dflydev/dot-access-data v3.0.2 php-composer doctrine/cache 2.2.0 php-composer -doctrine/dbal 3.7.1 php-composer +doctrine/dbal 3.7.3 php-composer doctrine/deprecations 1.1.2 php-composer doctrine/event-manager 1.2.0 php-composer -doctrine/inflector 2.0.8 php-composer +doctrine/inflector 2.0.9 php-composer doctrine/instantiator 1.5.0 php-composer doctrine/lexer 2.1.0 php-composer -dompdf/dompdf v2.0.3 php-composer +dompdf/dompdf v2.0.4 php-composer dragonmantank/cron-expression v3.3.3 php-composer egulias/email-validator 3.2.6 php-composer encodings 1.0.7-r1 apk -fakerphp/faker v1.23.0 php-composer -filp/whoops 2.15.3 php-composer +fakerphp/faker v1.23.1 php-composer +filp/whoops 2.15.4 php-composer font-freefont 20120503-r4 apk -fontconfig 2.14.2-r3 apk -freetype 2.13.0-r5 apk +fontconfig 2.14.2-r4 apk +freetype 2.13.2-r0 apk fruitcake/php-cors v1.3.0 php-composer gdbm 1.23-r1 apk -git 2.40.1-r0 apk -git-perl 2.40.1-r0 apk -glib 2.76.4-r0 apk -graham-campbell/result-type v1.1.1 php-composer -guzzlehttp/guzzle 7.8.0 php-composer -guzzlehttp/promises 2.0.1 php-composer -guzzlehttp/psr7 2.6.1 php-composer -guzzlehttp/uri-template v1.0.2 php-composer +git 2.43.0-r0 apk +git-perl 2.43.0-r0 apk +glib 2.78.4-r0 apk +graham-campbell/result-type v1.1.2 php-composer +guzzlehttp/guzzle 7.8.1 php-composer +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 -icu-data-full 73.2-r2 apk -icu-libs 73.2-r2 apk +hiredis 1.2.0-r0 apk +icu-data-full 74.1-r0 apk +icu-libs 74.1-r0 apk intervention/image 2.7.2 php-composer itsgoingd/clockwork v5.1.12 php-composer -jq 1.6-r4 apk +jq 1.7.1-r0 apk knplabs/knp-snappy v1.4.4 php-composer +larastan/larastan v2.8.1 php-composer laravel/framework v9.52.16 php-composer -laravel/serializable-closure v1.3.1 php-composer -laravel/socialite v5.9.1 php-composer -laravel/tinker v2.8.2 php-composer +laravel/serializable-closure v1.3.3 php-composer +laravel/socialite v5.11.0 php-composer +laravel/tinker v2.9.0 php-composer league/commonmark 2.4.1 php-composer league/config v1.2.0 php-composer -league/flysystem 3.17.0 php-composer -league/flysystem-aws-s3-v3 3.16.0 php-composer -league/flysystem-local 3.16.0 php-composer +league/flysystem 3.23.0 php-composer +league/flysystem-aws-s3-v3 3.22.0 php-composer +league/flysystem-local 3.23.0 php-composer league/html-to-markdown 5.1.1 php-composer league/mime-type-detection 1.14.0 php-composer league/oauth1-client v1.10.1 php-composer league/oauth2-client 2.7.0 php-composer -libacl 2.3.1-r3 apk -libattr 2.5.1-r4 apk -libavif 0.11.1-r2 apk -libblkid 2.38.1-r8 apk -libbsd 0.11.7-r1 apk -libbz2 1.0.8-r5 apk +libacl 2.3.1-r4 apk +libattr 2.5.1-r5 apk +libavif 1.0.3-r0 apk +libblkid 2.39.3-r0 apk +libbsd 0.11.7-r3 apk +libbz2 1.0.8-r6 apk libc-utils 0.7.2-r5 apk -libcrypto3 3.1.4-r1 apk +libcrypto3 3.1.4-r4 apk libcurl 8.5.0-r0 apk -libdav1d 1.2.1-r0 apk -libedit 20221030.3.1-r1 apk -libevent 2.1.12-r6 apk -libexpat 2.5.0-r1 apk -libffi 3.4.4-r2 apk -libfontenc 1.1.7-r2 apk -libgcc 12.2.1_git20220924-r10 apk -libice 1.1.1-r2 apk -libidn2 2.3.4-r1 apk -libintl 0.21.1-r7 apk -libjpeg-turbo 2.1.5.1-r3 apk -libldap 2.6.5-r0 apk -libmd 1.0.4-r2 apk +libdav1d 1.3.0-r0 apk +libedit 20230828.3.1-r3 apk +libevent 2.1.12-r7 apk +libexpat 2.5.0-r2 apk +libffi 3.4.4-r3 apk +libfontenc 1.1.7-r4 apk +libgcc 13.2.1_git20231014-r0 apk +libice 1.1.1-r5 apk +libidn2 2.3.4-r4 apk +libintl 0.22.3-r0 apk +libjpeg-turbo 3.0.1-r0 apk +libldap 2.6.6-r1 apk +libmd 1.1.0-r0 apk libmemcached-libs 1.1.4-r1 apk -libmount 2.38.1-r8 apk -libncursesw 6.4_p20230506-r0 apk -libpcre2-16 10.42-r1 apk -libpng 1.6.39-r3 apk +libmount 2.39.3-r0 apk +libncursesw 6.4_p20231125-r0 apk +libpcre2-16 10.42-r2 apk +libpng 1.6.40-r0 apk libproc2 4.0.4-r0 apk -libsasl 2.1.28-r4 apk -libseccomp 2.5.4-r2 apk -libsm 1.2.4-r1 apk -libssl3 3.1.4-r1 apk -libstdc++ 12.2.1_git20220924-r10 apk -libunistring 1.1-r1 apk -libuuid 2.38.1-r8 apk +libsasl 2.1.28-r5 apk +libseccomp 2.5.5-r0 apk +libsharpyuv 1.3.2-r0 apk +libsm 1.2.4-r3 apk +libssl3 3.1.4-r4 apk +libstdc++ 13.2.1_git20231014-r0 apk +libunistring 1.1-r2 apk +libuuid 2.39.3-r0 apk libwebp 1.3.2-r0 apk libx11 1.8.7-r0 apk -libxau 1.0.11-r2 apk -libxcb 1.15-r1 apk -libxdmcp 1.1.4-r2 apk -libxext 1.3.5-r2 apk +libxau 1.0.11-r3 apk +libxcb 1.16-r0 apk +libxdmcp 1.1.4-r3 apk +libxext 1.3.5-r3 apk libxml2 2.11.6-r0 apk -libxpm 3.5.16-r1 apk -libxt 1.3.0-r2 apk -libzip 1.9.2-r2 apk -linux-pam 1.5.2-r10 apk +libxpm 3.5.17-r0 apk +libxt 1.3.0-r4 apk +libzip 1.10.1-r0 apk +linux-pam 1.5.3-r7 apk logrotate 3.21.0-r1 apk -mariadb-client 10.11.5-r0 apk -mariadb-common 10.11.5-r0 apk +mariadb-client 10.11.5-r3 apk +mariadb-common 10.11.5-r3 apk masterminds/html5 2.8.1 php-composer -memcached 1.6.21-r0 apk -mkfontscale 1.2.2-r3 apk -mockery/mockery 1.6.6 php-composer -monolog/monolog 2.9.1 php-composer +memcached 1.6.22-r0 apk +mkfontscale 1.2.2-r4 apk +mockery/mockery 1.6.7 php-composer +monolog/monolog 2.9.2 php-composer mtdowling/jmespath.php 2.7.0 php-composer -musl 1.2.4-r2 apk -musl-utils 1.2.4-r2 apk +musl 1.2.4_git20230717-r4 apk +musl-utils 1.2.4_git20230717-r4 apk myclabs/deep-copy 1.11.1 php-composer nano 7.2-r1 apk -ncurses-terminfo-base 6.4_p20230506-r0 apk -nesbot/carbon 2.71.0 php-composer -netcat-openbsd 1.219-r1 apk +ncurses-terminfo-base 6.4_p20231125-r0 apk +nesbot/carbon 2.72.2 php-composer +netcat-openbsd 1.226-r0 apk nette/schema v1.2.5 php-composer -nette/utils v4.0.2 php-composer -nghttp2-libs 1.57.0-r0 apk -nginx 1.24.0-r7 apk -nikic/php-parser v4.17.1 php-composer +nette/utils v4.0.4 php-composer +nghttp2-libs 1.58.0-r0 apk +nginx 1.24.0-r14 apk +nikic/php-parser v5.0.0 php-composer nunomaduro/collision v6.4.0 php-composer -nunomaduro/larastan v2.6.4 php-composer nunomaduro/termwind v1.15.1 php-composer onelogin/php-saml 4.1.0 php-composer -oniguruma 6.9.8-r1 apk -openssl 3.1.4-r1 apk +oniguruma 6.9.9-r0 apk +openssl 3.1.4-r4 apk paragonie/constant_time_encoding v2.6.3 php-composer paragonie/random_compat v9.99.100 php-composer pcre 8.45-r3 apk -pcre2 10.42-r1 apk -perl 5.36.2-r0 apk -perl-error 0.17029-r1 apk -perl-git 2.40.1-r0 apk +pcre2 10.42-r2 apk +perl 5.38.2-r0 apk +perl-error 0.17029-r2 apk +perl-git 2.43.0-r0 apk phar-io/manifest 2.0.3 php-composer phar-io/version 3.2.1 php-composer -phenx/php-font-lib 0.5.4 php-composer -phenx/php-svg-lib 0.5.0 php-composer -php82 8.2.13-r0 apk -php82-common 8.2.13-r0 apk -php82-ctype 8.2.13-r0 apk -php82-curl 8.2.13-r0 apk -php82-dom 8.2.13-r0 apk -php82-fileinfo 8.2.13-r0 apk -php82-fpm 8.2.13-r0 apk -php82-gd 8.2.13-r0 apk -php82-iconv 8.2.13-r0 apk -php82-ldap 8.2.13-r0 apk -php82-mbstring 8.2.13-r0 apk -php82-mysqlnd 8.2.13-r0 apk -php82-openssl 8.2.13-r0 apk -php82-pdo 8.2.13-r0 apk -php82-pdo_mysql 8.2.13-r0 apk -php82-pecl-igbinary 3.2.14-r0 apk -php82-pecl-memcached 3.2.0-r1 apk -php82-pecl-msgpack 2.2.0-r0 apk -php82-phar 8.2.13-r0 apk -php82-session 8.2.13-r0 apk -php82-simplexml 8.2.13-r0 apk -php82-sockets 8.2.13-r0 apk -php82-tokenizer 8.2.13-r0 apk -php82-xml 8.2.13-r0 apk -php82-xmlwriter 8.2.13-r0 apk -php82-zip 8.2.13-r0 apk -phpmyadmin/sql-parser 5.8.2 php-composer -phpoption/phpoption 1.9.1 php-composer -phpseclib/phpseclib 3.0.23 php-composer -phpstan/phpstan 1.10.39 php-composer -phpunit/php-code-coverage 9.2.29 php-composer +phenx/php-font-lib 0.5.5 php-composer +phenx/php-svg-lib 0.5.1 php-composer +php83 8.3.2-r0 apk +php83-common 8.3.2-r0 apk +php83-ctype 8.3.2-r0 apk +php83-curl 8.3.2-r0 apk +php83-dom 8.3.2-r0 apk +php83-fileinfo 8.3.2-r0 apk +php83-fpm 8.3.2-r0 apk +php83-gd 8.3.2-r0 apk +php83-iconv 8.3.2-r0 apk +php83-ldap 8.3.2-r0 apk +php83-mbstring 8.3.2-r0 apk +php83-mysqlnd 8.3.2-r0 apk +php83-openssl 8.3.2-r0 apk +php83-pdo 8.3.2-r0 apk +php83-pdo_mysql 8.3.2-r0 apk +php83-pecl-igbinary 3.2.15-r0 apk +php83-pecl-memcached 3.2.0-r0 apk +php83-pecl-msgpack 2.2.0-r1 apk +php83-phar 8.3.2-r0 apk +php83-session 8.3.2-r0 apk +php83-simplexml 8.3.2-r0 apk +php83-sockets 8.3.2-r0 apk +php83-tokenizer 8.3.2-r0 apk +php83-xml 8.3.2-r0 apk +php83-xmlwriter 8.3.2-r0 apk +php83-zip 8.3.2-r0 apk +phpmyadmin/sql-parser 5.9.0 php-composer +phpoption/phpoption 1.9.2 php-composer +phpseclib/phpseclib 3.0.35 php-composer +phpstan/phpstan 1.10.56 php-composer +phpunit/php-code-coverage 9.2.30 php-composer phpunit/php-file-iterator 3.0.6 php-composer phpunit/php-invoker 3.1.1 php-composer phpunit/php-text-template 2.0.4 php-composer phpunit/php-timer 5.0.3 php-composer -phpunit/phpunit 9.6.13 php-composer -popt 1.19-r2 apk +phpunit/phpunit 9.6.16 php-composer +popt 1.19-r3 apk pragmarx/google2fa v8.0.1 php-composer predis/predis v2.2.2 php-composer procps-ng 4.0.4-r0 apk @@ -207,44 +214,44 @@ psr/http-factory 1.0.2 php-composer psr/http-message 2.0 php-composer psr/log 3.0.0 php-composer psr/simple-cache 3.0.0 php-composer -psy/psysh v0.11.22 php-composer -qt5-qtbase 5.15.9_git20230505-r0 apk +psy/psysh v0.12.0 php-composer +qt5-qtbase 5.15.10_git20230714-r2 apk ralouphie/getallheaders 3.0.3 php-composer ramsey/collection 1.3.0 php-composer -ramsey/uuid 4.7.4 php-composer -readline 8.2.1-r1 apk +ramsey/uuid 4.7.5 php-composer +readline 8.2.1-r2 apk robrichards/xmlseclibs 3.1.1 php-composer sabberworm/php-css-parser 8.4.0 php-composer -scanelf 1.3.7-r1 apk +scanelf 1.3.7-r2 apk sebastian/cli-parser 1.0.1 php-composer sebastian/code-unit 1.0.8 php-composer sebastian/code-unit-reverse-lookup 2.0.3 php-composer sebastian/comparator 4.0.8 php-composer -sebastian/complexity 2.0.2 php-composer +sebastian/complexity 2.0.3 php-composer sebastian/diff 4.0.5 php-composer sebastian/environment 5.1.5 php-composer sebastian/exporter 4.0.5 php-composer sebastian/global-state 5.0.6 php-composer -sebastian/lines-of-code 1.0.3 php-composer +sebastian/lines-of-code 1.0.4 php-composer sebastian/object-enumerator 4.0.4 php-composer sebastian/object-reflector 2.0.4 php-composer sebastian/recursion-context 4.0.5 php-composer sebastian/resource-operations 3.0.3 php-composer sebastian/type 3.2.1 php-composer sebastian/version 3.0.2 php-composer -shadow 4.13-r4 apk -skalibs 2.13.1.1-r1 apk +shadow 4.14.2-r0 apk +skalibs 2.14.0.1-r0 apk socialiteproviders/discord 4.2.0 php-composer socialiteproviders/gitlab 4.1.0 php-composer socialiteproviders/manager v4.4.0 php-composer socialiteproviders/microsoft-azure 5.1.0 php-composer -socialiteproviders/okta 4.3.0 php-composer +socialiteproviders/okta 4.4.0 php-composer socialiteproviders/twitch 5.3.1 php-composer -squizlabs/php_codesniffer 3.7.2 php-composer +squizlabs/php_codesniffer 3.8.1 php-composer ssddanbrown/asserthtml v2.0.0 php-composer ssddanbrown/htmldiff v1.0.2 php-composer ssddanbrown/symfony-mailer 6.0.x-dev php-composer -ssl_client 1.36.1-r5 apk +ssl_client 1.36.1-r15 apk symfony/console v6.0.19 php-composer symfony/css-selector v6.0.19 php-composer symfony/deprecation-contracts v3.0.2 php-composer @@ -273,13 +280,13 @@ symfony/translation v6.0.19 php-composer symfony/translation-contracts v3.0.2 php-composer symfony/uid v6.0.19 php-composer symfony/var-dumper v6.0.19 php-composer -theseer/tokenizer 1.2.1 php-composer -tijsverkoyen/css-to-inline-styles 2.2.6 php-composer -tzdata 2023c-r1 apk -utmps-libs 0.1.2.1-r1 apk -vlucas/phpdotenv v5.5.0 php-composer +theseer/tokenizer 1.2.2 php-composer +tijsverkoyen/css-to-inline-styles v2.2.7 php-composer +tzdata 2023d-r0 apk +utmps-libs 0.1.2.2-r0 apk +vlucas/phpdotenv v5.6.0 php-composer voku/portable-ascii 2.0.1 php-composer webmozart/assert 1.11.0 php-composer -xz-libs 5.4.3-r0 apk -zlib 1.2.13-r1 apk -zstd-libs 1.5.5-r4 apk +xz-libs 5.4.5-r0 apk +zlib 1.3-r2 apk +zstd-libs 1.5.5-r8 apk diff --git a/readme-vars.yml b/readme-vars.yml index f13564d..43b185b 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -21,7 +21,7 @@ available_architectures: param_container_name: "{{ project_name }}" param_usage_include_vols: true param_volumes: - - { vol_path: "/config", vol_host_path: "/path/to/data", desc: "this will store any uploaded data on the docker host" } + - { vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/config", desc: "Persistent config files" } param_usage_include_env: true param_env_vars: - { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"} @@ -113,7 +113,8 @@ app_setup_block: | # changelog changelogs: - - { date: "25.12.23:", desc: "Existing users should update: site-confs/default.conf - Cleanup default site conf." } + - { date: "25.01.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: "31.10.23:", desc: "Further sanitize sed replace." } - { date: "07.06.23:", desc: "Add mariadb-client for bookstack-system-cli support." } - { date: "25.05.23:", desc: "Rebase to Alpine 3.18, deprecate armhf." }