linuxserver / docker-dokuwiki

GNU General Public License v3.0
110 stars 24 forks source link

Fatal Exception After upgrade to latest image #47

Closed GAS85 closed 1 year ago

GAS85 commented 2 years ago

linuxserver.io


Expected Behavior

Docker pull with latest tag should not break installation

Current Behavior

Dokuwiki shows an error with latest image:

dokuwiki\Exception\FatalException: Array and string offset access syntax with curly braces is no longer supported

An unforeseen error has occured. This is most likely a bug somewhere. It might be a problem in the move plugin.

More info has been written to the DokuWiki error log.

Not sure how to disable plugin when it is not starting. Check docker logs:

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service 00-legacy: starting
s6-rc: info: service 00-legacy successfully started
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/01-envfile
cont-init: info: /etc/cont-init.d/01-envfile exited 0
cont-init: info: running /etc/cont-init.d/01-migrations
[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] 02-default-location: skipped
[migrations] done
cont-init: info: /etc/cont-init.d/01-migrations exited 0
cont-init: info: running /etc/cont-init.d/02-tamper-check
cont-init: info: /etc/cont-init.d/02-tamper-check exited 0
cont-init: info: running /etc/cont-init.d/10-adduser

 

 
      _         ()
     | |  ___   _    __
     | | / __| | |  /  \
     | | \__ \ | | | () |
     |_| |___/ |_|  \__/
 

Brought to you by linuxserver.io

To support LSIO projects visit:
https://www.linuxserver.io/donate/

GID/UID

User uid:    1001
User gid:    998

cont-init: info: /etc/cont-init.d/10-adduser exited 0
cont-init: info: running /etc/cont-init.d/11-folders
cont-init: info: /etc/cont-init.d/11-folders exited 0
cont-init: info: running /etc/cont-init.d/12-samples
cont-init: info: /etc/cont-init.d/12-samples exited 0
cont-init: info: running /etc/cont-init.d/13-nginx
cont-init: info: /etc/cont-init.d/13-nginx exited 0
cont-init: info: running /etc/cont-init.d/14-php
cont-init: info: /etc/cont-init.d/14-php exited 0
cont-init: info: running /etc/cont-init.d/15-keygen
using keys found in /config/keys
cont-init: info: /etc/cont-init.d/15-keygen exited 0
cont-init: info: running /etc/cont-init.d/20-permissions
cont-init: info: /etc/cont-init.d/20-permissions exited 0
cont-init: info: running /etc/cont-init.d/50-config
Existing install found install.php not available
[cont-init.d] Setting permissions this may take some time
cont-init: info: /etc/cont-init.d/50-config exited 0
cont-init: info: running /etc/cont-init.d/85-version-checks
**** The following active confs have different version dates than the samples that are shipped. ****
**** This may be due to user customization or an update to the samples. ****
**** You should compare the following files to the samples in the same folder and update them. ****
**** Use the link at the top of the file to view the changelog. ****
/config/nginx/site-confs/default.conf
/config/nginx/nginx.conf

**** The following site-confs have extensions other than .conf ****
**** This may be due to user customization. ****
**** You should review the files and rename them to use the .conf extension or remove them. ****
**** nginx.conf will only include site-confs with the .conf extension. ****
/config/nginx/site-confs/default
cont-init: info: /etc/cont-init.d/85-version-checks exited 0
cont-init: info: running /etc/cont-init.d/90-custom-folders
cont-init: info: /etc/cont-init.d/90-custom-folders exited 0
cont-init: info: running /etc/cont-init.d/99-custom-files
[custom-init] no custom files found exiting...
cont-init: info: /etc/cont-init.d/99-custom-files exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service init-mods: starting
s6-rc: info: service init-mods successfully started
s6-rc: info: service init-mods-package-install: starting
s6-rc: info: service init-mods-package-install successfully started
s6-rc: info: service init-mods-end: starting
s6-rc: info: service init-mods-end successfully started
s6-rc: info: service init-services: starting
s6-rc: info: service init-services successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun cron (no readiness notification)
services-up: info: copying legacy longrun nginx (no readiness notification)
services-up: info: copying legacy longrun php-fpm (no readiness notification)
s6-rc: info: service legacy-services successfully started
s6-rc: info: service 99-ci-service-check: starting
[ls.io-init] done.
s6-rc: info: service 99-ci-service-check successfully started

Rollback to previous image causes simple File not found error.

Steps to Reproduce

  1. Setup docuwiki with docker compose
  2. Have working since few months
  3. Update image to the latest one
  4. See an error

Environment

OS: Ubuntu 20.04 CPU architecture: x64 **How docker service was installed from the official docker repo

Command used to create docker container (run/create/compose/screenshot)

dokuwiki:
  image: lscr.io/linuxserver/dokuwiki:latest
  container_name: dokuwiki
  environment:
    - PUID=${PUID}
    - PGID=${PGID}
    - TZ=${TZ}
  volumes:
    - ${WORKINGDIR}/docker/dokuwiki/:/config/dokuwiki/
    - ${WORKINGDIR}/docker/dokuwiki/log:/config/log/
  ports:
    - 9014:80
  restart: unless-stopped

Docker logs

github-actions[bot] commented 2 years ago

Thanks for opening your first issue here! Be sure to follow the bug or feature issue templates!

Roxedus commented 2 years ago

This is a unsupported deployment, can you please mount the whole /config mount and try to replicate?

GAS85 commented 2 years ago

I moved all data under dokuwiki folder and update config:

dokuwiki:
  image: lscr.io/linuxserver/dokuwiki:latest
  container_name: dokuwiki
  environment:
    - PUID=${PUID}
    - PGID=${PGID}
    - TZ=${TZ}
  volumes:
    - ${WORKINGDIR}/docker/dokuwiki/:/config/
   # - ${WORKINGDIR}/docker/dokuwiki/log:/config/log/
  ports:
    - 9014:80
  restart: unless-stopped

Now I have multiple additional folders, but this has no effect on error.

GAS85 commented 2 years ago

Meanwhile I solve it by removing move plug-in manually as per https://forum.dokuwiki.org/d/19011-how-to-manually-uninstall-a-plugin There is no need to update configuration and have it as was suggested here. But root cause why plugin suddenly stop working with newer image is unclear to me.

s3phir0th115 commented 2 years ago

I encountered this with my container as well. In my cases though the extension was nspages, which I don't remember installing but admittedly may have a while ago. Anyway, in my case I removed the original directory for it and grabbed the latest version, then placed it in my config/dokuwiki/lib/plugins directory. This fixed it for me.

majorsl commented 2 years ago

This is happening because the latest release from linuxserver is using php8. Many of the core plugins are not php8 compatible, so this distribution is effectively broken. Those of us using things like authentication to Active Directory (again, a core plugin from Dokuwiki) are out of luck and have to revert to an older version.

Can we get a release again using PHP 7.4 please?

aptalca commented 2 years ago

Php7 is being left in the dust. Even php 8.0 is old news as php 8.1 is now the stable.

The plugin authors should update their plugins. Going back to old versions is not a sustainable solution.

majorsl commented 2 years ago

Move to a different container for Dokuwiki or a LAMP stack. Got it. :)

watermark commented 1 year ago

I ran into this issue and wanted to share how I fixed it. I'm just the server admin, so I'm not super familiar with Doku itself.

Doku version 2022-07-31a “Igor” seems to be PHP8 compatible. https://www.dokuwiki.org/changes

I ran into the OPs issue, but in viewing the logs found the issue was a plugin. Logs are stored in /app/www/public/data/log/error/ . In my case, it was the "gallery" plugin, but I'd imagine your issue could be any of them. I manually updated the offending plugin by:

  1. Navigating to /config/dokuwiki/lib/plugins
  2. Moving the offending plugin directory to /tmp for safe keeping ("gallery" in my case)
  3. Downloaded the updated gallery plugin
  4. Unzipped into the /config/dokuwiki/lib/plugins folder and named the folder "gallery"

After that, I was able to login. Through Googlefu also found you can goto https://yourwiki/?do=admin&page=extension to see other plugins that need updating.

Hope this at least puts you on the right path

GAS85 commented 1 year ago

Can be plugins update triggered by Docker start? Plugin had an PHP 8 support in newer version, it was just not updated at the time of container update.

github-actions[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

florianmski commented 1 year ago

I ran into this issue and wanted to share how I fixed it. I'm just the server admin, so I'm not super familiar with Doku itself.

Doku version 2022-07-31a “Igor” seems to be PHP8 compatible. https://www.dokuwiki.org/changes

I ran into the OPs issue, but in viewing the logs found the issue was a plugin. Logs are stored in /app/www/public/data/log/error/ . In my case, it was the "gallery" plugin, but I'd imagine your issue could be any of them. I manually updated the offending plugin by:

1. Navigating to /config/dokuwiki/lib/plugins

2. Moving the offending plugin directory to /tmp for safe keeping ("gallery" in my case)

3. Downloaded the updated gallery plugin

4. Unzipped into the /config/dokuwiki/lib/plugins folder and named the folder "gallery"

After that, I was able to login. Through Googlefu also found you can goto https://yourwiki/?do=admin&page=extension to see other plugins that need updating.

Hope this at least puts you on the right path

Thank you so much! In my case when trying to reach dokuwiki it said the nspages plugin was the problem. So I just wget https://github.com/gturri/nspages/zipball/master and unzipped it, replaced the old nspages folder in /appdata/config/dokuwiki/lib/plugins and refreshed the page and it worked like a charm! :v:

github-actions[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. This might be due to missing feedback from OP. It will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] commented 1 year ago

This issue is locked due to inactivity