Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: linuxserver/docker-bookstack
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v24.10.3-ls178
Choose a base ref
...
head repository: linuxserver/docker-bookstack
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Dec 2, 2024

  1. Copy the full SHA
    a96801f View commit details
  2. Copy the full SHA
    85e3b1a View commit details
  3. Copy the full SHA
    3955a5c View commit details
  4. Copy the full SHA
    b52e28a View commit details

Commits on Dec 9, 2024

  1. Copy the full SHA
    b704ebd View commit details

Commits on Dec 16, 2024

  1. Copy the full SHA
    15092cd View commit details
  2. Copy the full SHA
    10aca3f View commit details
  3. Copy the full SHA
    9a88ade View commit details

Commits on Dec 17, 2024

  1. Copy the full SHA
    476e046 View commit details
  2. Use /tmp as we need it anyway

    thespad committed Dec 17, 2024
    Copy the full SHA
    fdf3490 View commit details

Commits on Dec 18, 2024

  1. Improve symlink creation

    thespad committed Dec 18, 2024
    Copy the full SHA
    5fd60b3 View commit details

Commits on Dec 21, 2024

  1. Copy the full SHA
    fb50f78 View commit details
  2. Copy the full SHA
    15af885 View commit details
  3. Copy the full SHA
    ee61205 View commit details

Commits on Dec 22, 2024

  1. Copy the full SHA
    d283e53 View commit details
  2. Copy the full SHA
    244c619 View commit details

Commits on Dec 23, 2024

  1. Copy the full SHA
    c705a81 View commit details

Commits on Jan 4, 2025

  1. Add php83-opcache

    thespad committed Jan 4, 2025
    Copy the full SHA
    72f4063 View commit details
  2. Copy the full SHA
    32a45a9 View commit details

Commits on Jan 5, 2025

  1. Copy the full SHA
    3236a68 View commit details
  2. Copy the full SHA
    29778a5 View commit details
  3. Copy the full SHA
    4efb651 View commit details

Commits on Jan 15, 2025

  1. Copy the full SHA
    17961c4 View commit details
  2. Copy the full SHA
    44544d0 View commit details
  3. Copy the full SHA
    9be39e5 View commit details

Commits on Jan 20, 2025

  1. Copy the full SHA
    ef5d337 View commit details
  2. Copy the full SHA
    dcb27aa View commit details

Commits on Jan 21, 2025

  1. Merge pull request #259 from linuxserver/add-project-categories

    Add categories to readme-vars.yml
    quietsy authored Jan 21, 2025
    Copy the full SHA
    63ab103 View commit details

Commits on Jan 22, 2025

  1. Copy the full SHA
    a31d51a View commit details

Commits on Feb 3, 2025

  1. Copy the full SHA
    30ec902 View commit details
  2. Copy the full SHA
    4c04134 View commit details

Commits on Feb 10, 2025

  1. Copy the full SHA
    167e0a0 View commit details

Commits on Feb 17, 2025

  1. Copy the full SHA
    9e330f4 View commit details

Commits on Feb 24, 2025

  1. Copy the full SHA
    feb8032 View commit details

Commits on Feb 26, 2025

  1. Copy the full SHA
    80ee30e View commit details

Commits on Mar 8, 2025

  1. Fix backup symlink

    thespad committed Mar 8, 2025
    Copy the full SHA
    06da7f0 View commit details

Commits on Mar 9, 2025

  1. Merge pull request #266 from linuxserver/backup-symlink

    Fix backup symlink
    thespad authored Mar 9, 2025
    Copy the full SHA
    6bda8c3 View commit details
  2. Copy the full SHA
    c833bc4 View commit details

Commits on Mar 16, 2025

  1. Copy the full SHA
    cb76bd3 View commit details

Commits on Mar 17, 2025

  1. Copy the full SHA
    6006704 View commit details

Commits on Mar 31, 2025

  1. Copy the full SHA
    0c1bdf7 View commit details

Commits on Apr 2, 2025

  1. Copy the full SHA
    4c90655 View commit details

Commits on Apr 7, 2025

  1. Copy the full SHA
    bee3648 View commit details

Commits on Apr 14, 2025

  1. Copy the full SHA
    aab1799 View commit details

Commits on Apr 21, 2025

  1. Copy the full SHA
    f92adde View commit details

Commits on May 5, 2025

  1. Copy the full SHA
    5eb50e7 View commit details

Commits on May 8, 2025

  1. Copy the full SHA
    481bdb6 View commit details

Commits on May 17, 2025

  1. Copy the full SHA
    9c2b40c View commit details
  2. Copy the full SHA
    336d5ba View commit details

Commits on May 26, 2025

  1. Copy the full SHA
    4cb2d86 View commit details
Empty file modified .editorconfig
100755 → 100644
Empty file.
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
100755 → 100644
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@
* Read, and fill the Pull Request template
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn)
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord)

## Common files

Empty file modified .github/FUNDING.yml
100755 → 100644
Empty file.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
blank_issues_enabled: false
contact_links:
- name: Discord chat support
url: https://discord.gg/YWrKVTn
url: https://linuxserver.io/discord
about: Realtime support / chat with the community and the team.

- name: Discourse discussion forum
Empty file modified .github/ISSUE_TEMPLATE/issue.bug.yml
100755 → 100644
Empty file.
Empty file modified .github/ISSUE_TEMPLATE/issue.feature.yml
100755 → 100644
Empty file.
3 changes: 3 additions & 0 deletions .github/workflows/call_issue_pr_tracker.yml
100755 → 100644
Original file line number Diff line number Diff line change
@@ -8,6 +8,9 @@ on:
pull_request_review:
types: [submitted,edited,dismissed]

permissions:
contents: read

jobs:
manage-project:
permissions:
3 changes: 3 additions & 0 deletions .github/workflows/call_issues_cron.yml
100755 → 100644
Original file line number Diff line number Diff line change
@@ -4,6 +4,9 @@ on:
- cron: '3 9 * * *'
workflow_dispatch:

permissions:
contents: read

jobs:
stale:
permissions:
62 changes: 46 additions & 16 deletions .github/workflows/external_trigger.yml
100755 → 100644
Original file line number Diff line number Diff line change
@@ -3,6 +3,9 @@ name: External Trigger Main
on:
workflow_dispatch:

permissions:
contents: read

jobs:
external-trigger-master:
runs-on: ubuntu-latest
@@ -15,7 +18,10 @@ jobs:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: |
printf "# External trigger for docker-bookstack\n\n" >> $GITHUB_STEP_SUMMARY
if grep -q "^bookstack_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
if grep -q "^bookstack_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`bookstack_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^bookstack_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`bookstack_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
@@ -25,6 +31,11 @@ jobs:
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/bookstackapp/bookstack/releases/latest" | jq -r '. | .tag_name')
echo "Type is \`github_stable\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^bookstack_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY
@@ -35,24 +46,43 @@ jobs:
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
EXT_RELEASE=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "External version: \`${EXT_RELEASE}\`" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
image="linuxserver/bookstack"
tag="latest"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fbookstack%3Apull" \
| jq -r '.token')
multidigest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}" \
| jq -r 'first(.manifests[].digest)')
digest=$(curl -s \
multidigest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.index.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}")
if jq -e '.layers // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# If there's a layer element it's a single-arch manifest so just get that digest
digest=$(jq -r '.config.digest' <<< "${multidigest}")
else
# Otherwise it's multi-arch or has manifest annotations
if jq -e '.manifests[]?.annotations // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# Check for manifest annotations and delete if found
multidigest=$(jq 'del(.manifests[] | select(.annotations))' <<< "${multidigest}")
fi
if [[ $(jq '.manifests | length' <<< "${multidigest}") -gt 1 ]]; then
# If there's still more than one digest, it's multi-arch
multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}")
else
# Otherwise it's single arch
multidigest=$(jq -r ".manifests[].digest?" <<< "${multidigest}")
fi
if digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.manifest.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${multidigest}" \
| jq -r '.config.digest')
"https://ghcr.io/v2/${image}/manifests/${multidigest}"); then
digest=$(jq -r '.config.digest' <<< "${digest}");
fi
fi
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}")
@@ -73,8 +103,8 @@ jobs:
exit 1
fi
echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE}" == "${IMAGE_VERSION}" ]; then
echo "Version \`${EXT_RELEASE}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bookstack/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
@@ -89,8 +119,8 @@ jobs:
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
else
printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
if "${artifacts_found}" == "true" ]]; then
echo "New sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
if [[ "${artifacts_found}" == "true" ]]; then
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
fi
response=$(curl -iX POST \
@@ -109,7 +139,7 @@ jobs:
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for bookstack tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE}"
TRIGGER_REASON="A version change was detected for bookstack tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
3 changes: 3 additions & 0 deletions .github/workflows/external_trigger_scheduler.yml
100755 → 100644
Original file line number Diff line number Diff line change
@@ -5,6 +5,9 @@ on:
- cron: '19 * * * *'
workflow_dispatch:

permissions:
contents: read

jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest
6 changes: 6 additions & 0 deletions .github/workflows/greetings.yml
100755 → 100644
Original file line number Diff line number Diff line change
@@ -2,8 +2,14 @@ name: Greetings

on: [pull_request_target, issues]

permissions:
contents: read

jobs:
greeting:
permissions:
issues: write
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1
30 changes: 25 additions & 5 deletions .github/workflows/package_trigger_scheduler.yml
100755 → 100644
Original file line number Diff line number Diff line change
@@ -5,6 +5,9 @@ on:
- cron: '4 18 * * 1'
workflow_dispatch:

permissions:
contents: read

jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest
@@ -27,17 +30,26 @@ jobs:
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-bookstack/${br}/jenkins-vars.yml)
if [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-bookstack/${br}/Jenkinsfile >/dev/null 2>&1; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
if [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-bookstack/${br}/readme-vars.yml)
if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Branch appears to be deprecated; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif grep -q "^bookstack_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`bookstack_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bookstack/job/${br}/lastBuild/api/json | jq -r '.building') == "true" ]; then
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bookstack/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
@@ -49,18 +61,26 @@ jobs:
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-bookstack/job/${br}/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
if [[ -z "${response}" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Jenkins build could not be triggered. Skipping branch."
continue
fi
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
curl -iX POST \
if ! curl -ifX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
--data-urlencode "Submit=Submit"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Unable to change the Jenkins job description."
fi
sleep 20
fi
else
Empty file modified .github/workflows/permissions.yml
100755 → 100644
Empty file.
30 changes: 18 additions & 12 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1

FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.20
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.22

# set version label
ARG BUILD_DATE
@@ -17,20 +17,21 @@ RUN \
fontconfig \
mariadb-client \
memcached \
php83-dom \
php83-exif \
php83-gd \
php83-ldap \
php83-mysqlnd \
php83-pdo_mysql \
php83-pecl-memcached \
php83-tokenizer \
php84-dom \
php84-exif \
php84-gd \
php84-ldap \
php84-mysqlnd \
php84-opcache \
php84-pdo_mysql \
php84-pecl-memcached \
php84-tokenizer \
qt5-qtbase \
ttf-freefont && \
echo "**** configure php-fpm to pass env vars ****" && \
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 && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php84/php-fpm.d/www.conf && \
if ! grep -qxF 'clear_env = no' /etc/php84/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php84/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php84/php-fpm.conf && \
echo "**** fetch bookstack ****" && \
mkdir -p\
/app/www && \
@@ -47,6 +48,11 @@ RUN \
echo "**** install composer dependencies ****" && \
composer install -d /app/www/ && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** create symlinks ****" && \
/bin/bash -c \
'dst=(www/themes www/files www/images www/uploads backups www/framework/cache www/framework/sessions www/framework/views log/bookstack/laravel.log www/.env); \
src=(themes storage/uploads/files storage/uploads/images public/uploads storage/backups storage/framework/cache storage/framework/sessions storage/framework/views storage/logs/laravel.log .env); \
for i in "${!src[@]}"; do rm -rf /app/www/"${src[i]}" && ln -s /config/"${dst[i]}" /app/www/"${src[i]}"; done' && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
30 changes: 18 additions & 12 deletions Dockerfile.aarch64
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1

FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.20
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.22

# set version label
ARG BUILD_DATE
@@ -17,20 +17,21 @@ RUN \
fontconfig \
mariadb-client \
memcached \
php83-dom \
php83-exif \
php83-gd \
php83-ldap \
php83-mysqlnd \
php83-pdo_mysql \
php83-pecl-memcached \
php83-tokenizer \
php84-dom \
php84-exif \
php84-gd \
php84-ldap \
php84-mysqlnd \
php84-opcache \
php84-pdo_mysql \
php84-pecl-memcached \
php84-tokenizer \
qt5-qtbase \
ttf-freefont && \
echo "**** configure php-fpm to pass env vars ****" && \
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 && \
sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php84/php-fpm.d/www.conf && \
if ! grep -qxF 'clear_env = no' /etc/php84/php-fpm.d/www.conf; then echo 'clear_env = no' >> /etc/php84/php-fpm.d/www.conf; fi && \
echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php84/php-fpm.conf && \
echo "**** fetch bookstack ****" && \
mkdir -p\
/app/www && \
@@ -47,6 +48,11 @@ RUN \
echo "**** install composer dependencies ****" && \
composer install -d /app/www/ && \
printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** create symlinks ****" && \
/bin/bash -c \
'dst=(www/themes www/files www/images www/uploads backups www/framework/cache www/framework/sessions www/framework/views log/bookstack/laravel.log www/.env); \
src=(themes storage/uploads/files storage/uploads/images public/uploads storage/backups storage/framework/cache storage/framework/sessions storage/framework/views storage/logs/laravel.log .env); \
for i in "${!src[@]}"; do rm -rf /app/www/"${src[i]}" && ln -s /config/"${dst[i]}" /app/www/"${src[i]}"; done' && \
echo "**** cleanup ****" && \
rm -rf \
/tmp/* \
Loading