Skip to content

change to debian trixie breaks example in repository #2456

Description

@XtraLarge

Hi,
you've changed the debian system to debian 13 (trixie), but the Dockerfile-examples like ".examples/dockerfiles/full/apache/Dockerfile" reference to debian 12 packages.

I've tried to find the replacment packages, but I've no sure which ones are correct.

I found that

  • libmagickcore-7.q16-10-extra is new
  • libc-client-dev does not exist

But after that I've stucked :(

Activity

  1. kodukon commented on Aug 16, 2025

    @kodukon

    Same problem:

     => ERROR [2/8] RUN set -ex;         apt-get update;     apt-get install -y --no-install-recommends         ffmpeg  ghostscript         libmagickcore-6.q16-6-extra         procps         smbcl  19.8s
    ------
     > [2/8] RUN set -ex;         apt-get update;     apt-get install -y --no-install-recommends         ffmpeg     ghostscript         libmagickcore-6.q16-6-extra         procps         smbclient         supervisor     ;     rm -rf /var/lib/apt/lists/*;:
    1.911 + apt-get update
    2.151 Hit:1 http://deb.debian.org/debian trixie InRelease
    2.151 Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.1 kB]
    2.154 Hit:3 http://deb.debian.org/debian-security trixie-security InRelease
    2.839 Get:4 http://deb.debian.org/debian trixie/main amd64 Packages [9668 kB]
    2.865 Get:5 http://deb.debian.org/debian trixie-updates/main amd64 Packages [2432 B]
    2.878 Get:6 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [8780 B]
    3.809 Fetched 9726 kB in 2s (5234 kB/s)
    3.809 Reading package lists...
    4.520 + apt-get install -y --no-install-recommends ffmpeg ghostscript libmagickcore-6.q16-6-extra procps smbclient supervisor
    4.526 Reading package lists...
    5.296 Building dependency tree...
    5.448 Reading state information...
    5.550 E: Unable to locate package libmagickcore-6.q16-6-extra
    5.550 E: Couldn't find any package by glob 'libmagickcore-6.q16-6-extra'
    5.550 E: Couldn't find any package by regex 'libmagickcore-6.q16-6-extra'
    
  2. nick-oconnor commented on Aug 16, 2025

    @nick-oconnor

    libmagickcore-6.q16-6-extra has been superseded by libmagickcore-7.q16-10-extra, but libc-client-dev is also missing from trixie.

  3. nick-oconnor commented on Aug 16, 2025

    @nick-oconnor

    The PHP imap extension depends on c-client - https://www.php.net/manual/en/imap.requirements.php. I'm not seeing any debian packages that provide it in trixie.

  4. db260179 commented on Aug 18, 2025

    @db260179

    Seems libmagickcore-7.q16-10-extra is in the base dockerfile now, and indeed the libc-client-dev is missing from the trixie repos?

    I can also see the imap is in the base images aswell, email seems to work?

    This is my example fpm config if it helps build for the time being

    FROM nextcloud:fpm
    
    RUN set -ex; \
        \
        apt-get update; \
        apt-get install -y --no-install-recommends \
            ffmpeg \
            ghostscript \
    #        libmagickcore-7.q16-10-extra \
            procps \
            smbclient \
            supervisor \
    #       libreoffice \
        ; \
        rm -rf /var/lib/apt/lists/*
    
    RUN set -ex; \
        \
        savedAptMark="$(apt-mark showmanual)"; \
        \
        apt-get update; \
        apt-get install -y --no-install-recommends \
            libbz2-dev \
            #libc-client-dev \
            libkrb5-dev \
            libsmbclient-dev \
        ; \
        \
    #    docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
        docker-php-ext-install \
            bz2 \
    #        imap \
        ; \
        pecl install smbclient; \
        docker-php-ext-enable smbclient; \
        \
    # reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
        apt-mark auto '.*' > /dev/null; \
        apt-mark manual $savedAptMark; \
        ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
            | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \
            | sort -u \
            | xargs -r dpkg-query --search \
            | cut -d: -f1 \
            | sort -u \
            | xargs -rt apt-mark manual; \
        \
        apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
        rm -rf /var/lib/apt/lists/*
    
    RUN mkdir -p \
        /var/log/supervisord \
        /var/run/supervisord \
    ;
    
    COPY supervisord.conf /
    
    ENV NEXTCLOUD_UPDATE=1
    
    CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
    
  5. svigerske commented on Aug 18, 2025

    @svigerske

    Why was it necessary to update to a new Debian major release for NextCloud 30 and 31? Isn't Debian bookworm still maintained for a while, at least longer than the lifetime for NextCloud 30 and 31?

    If one has to do a major update on the Debian base image, then why not wait with this until the next new major update of NextCloud?

    It would be great to just revert #2454 for now, so we won't have to guess around what changes we need to do to images build on top of it to do a maintenance update of NextCloud 30 and 31.

  6. XtraLarge commented on Aug 18, 2025

    @XtraLarge
    Author

    I've build it with that Dockerfile, I've tested smb and imap and supervisord. In my scenario it is enough ;-)

    To debug it, I've splitted it a little bit ;-)

    FROM nextcloud:apache
    
    RUN apt-get update && apt-get install -y procps smbclient && rm -rf /var/lib/apt/lists/*
    
    RUN set -ex; \
        \
        apt-get update; \
        apt-get install -y --no-install-recommends \
            ffmpeg \
            ghostscript \
            libmagickcore-7.q16-10-extra \
            procps \
        ; \
        rm -rf /var/lib/apt/lists/*
    
    RUN apt-get update && apt-get install -y \
        supervisor \
      && rm -rf /var/lib/apt/lists/* \
      && mkdir /var/log/supervisord /var/run/supervisord
    
    RUN set -ex; \
        \
        savedAptMark="$(apt-mark showmanual)"; \
        \
        apt-get update; \
        apt-get install -y --no-install-recommends \
            libbz2-dev \
            libsmbclient-dev \
        ; 
    
    RUN set -ex; \
        docker-php-ext-install \
            bz2 \
        ;
    
    RUN set -ex; \
        pecl install smbclient; \
        docker-php-ext-enable smbclient; 
    
    RUN set -ex; \
        apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
        rm -rf /var/lib/apt/lists/*;
    
    COPY supervisord.conf /
    
    ENV NEXTCLOUD_UPDATE=1
    
    CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
    
  7. added a commit that references this issue on Aug 18, 2025
  8. immanuelfodor commented on Oct 5, 2025

    @immanuelfodor

    ☝️ This is not an equivalent fix for the Apache example if somebody wants to have Libreoffice, too.

    Here is my diff for the Apache full example file. Could somebody maybe fix it in the repo as well, please?

     RUN set -ex; \
         \
    @@ -6,11 +8,11 @@ RUN set -ex; \
         apt-get install -y --no-install-recommends \
             ffmpeg \
             ghostscript \
    -        libmagickcore-6.q16-6-extra \
    +#        libmagickcore-6.q16-6-extra \
             procps \
             smbclient \
             supervisor \
    -#       libreoffice \
    +        libreoffice \
         ; \
         rm -rf /var/lib/apt/lists/*
     
    @@ -21,15 +23,15 @@ RUN set -ex; \
         apt-get update; \
         apt-get install -y --no-install-recommends \
             libbz2-dev \
    -        libc-client-dev \
    +#        libc-client-dev \
             libkrb5-dev \
             libsmbclient-dev \
         ; \
         \
    -    docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
    +#    docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
         docker-php-ext-install \
             bz2 \
    -        imap \
    +#        imap \
         ; \
         pecl install smbclient; \
         docker-php-ext-enable smbclient; \
  9. added a commit that references this issue on Oct 12, 2025
  10. agizmo commented on Oct 21, 2025

    @agizmo

    Not sure if this is the best way to fix the issue, but I found another solution by using the sury repo to install libc-client2007e-dev (https://www.reddit.com/r/debian/comments/1mu271u/php_84_desperately_need_imap_support/). The repo details state that this package provides & replaces libc-client-dev.

    I wasn't sure how to make ensure IMAP worked so I tried the "External user authentication" app with Gmail and an app password. I was surprised to see the login worked.

    @@ -6,7 +6,7 @@
         apt-get install -y --no-install-recommends \
             ffmpeg \
             ghostscript \
    -        libmagickcore-6.q16-6-extra \
    +        libmagickcore-7.q16-10-extra \
             procps \
             smbclient \
             supervisor \
    @@ -21,11 +21,14 @@
         apt-get update; \
         apt-get install -y --no-install-recommends \
             libbz2-dev \
    -        libc-client-dev \
             libkrb5-dev \
             libsmbclient-dev \
         ; \
         \
    +    curl -s https://packages.sury.org/php/README.txt | bash -x; \
    +    apt-get install -y --no-install-recommends \
    +        libc-client2007e-dev \
    +    ; \
         docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
         docker-php-ext-install \
             bz2 \
    
  11. Luk164 commented on Oct 31, 2025

    @Luk164

    ☝️ This is not an equivalent fix for the Apache example if somebody wants to have Libreoffice, too.

    Here is my diff for the Apache full example file. Could somebody maybe fix it in the repo as well, please?

    RUN set -ex;

    @@ -6,11 +8,11 @@ RUN set -ex;
    apt-get install -y --no-install-recommends
    ffmpeg
    ghostscript \

    •    libmagickcore-6.q16-6-extra \
      

    +# libmagickcore-6.q16-6-extra
    procps
    smbclient
    supervisor
    -# libreoffice \

    •    libreoffice \
      
      ;
      rm -rf /var/lib/apt/lists/*

    @@ -21,15 +23,15 @@ RUN set -ex;
    apt-get update;
    apt-get install -y --no-install-recommends
    libbz2-dev \

    •    libc-client-dev \
      

    +# libc-client-dev
    libkrb5-dev
    libsmbclient-dev
    ;
    \

    • docker-php-ext-configure imap --with-kerberos --with-imap-ssl;
      +# docker-php-ext-configure imap --with-kerberos --with-imap-ssl;
      docker-php-ext-install
      bz2 \
    •    imap \
      

    +# imap
    ;
    pecl install smbclient;
    docker-php-ext-enable smbclient; \

    Wouldn't that remove IMAP support completely? Or am I missing something? Also since libmagickcore is now supposedly in the base image, what is the point of having it still in the dockerfile?

  12. kodukon commented on Feb 1, 2026

    @kodukon

    There is my Dockerfile.
    Works fine in my env with "team folders", "ldap", "onlyoffice integrations".
    Successfully upgrade using it from 31.0.13 to 32.0.5

    NOTE: Used supervisord launcher

    supervisord.conf

    [supervisord]
    nodaemon=true
    logfile=/var/log/supervisord/supervisord.log
    pidfile=/var/run/supervisord/supervisord.pid
    childlogdir=/var/log/supervisord/
    logfile_maxbytes=50MB                           ; maximum size of logfile before rotation
    logfile_backups=10                              ; number of backed up logfiles
    loglevel=error
    
    [program:apache2]
    stdout_logfile=/dev/stdout
    stdout_logfile_maxbytes=0
    stderr_logfile=/dev/stderr
    stderr_logfile_maxbytes=0
    command=apache2-foreground
    
    [program:cron]
    stdout_logfile=/dev/stdout
    stdout_logfile_maxbytes=0
    stderr_logfile=/dev/stderr
    stderr_logfile_maxbytes=0
    command=/cron.sh
    
    FROM nextcloud:32.0.5-apache
    
    RUN set -ex; \
        \
        apt-get update; \
        apt-get install -y --no-install-recommends \
            ffmpeg \
    	    ghostscript \
            procps \
            smbclient \
            supervisor \
        ; \
        rm -rf /var/lib/apt/lists/*;
    
    RUN set -ex; \
        \
        savedAptMark="$(apt-mark showmanual)"; \
        \
        apt-get update; \
        apt-get install -y --no-install-recommends \
            libbz2-dev \
            libkrb5-dev \
            libsmbclient-dev \
        ; \
        \
        curl -s https://packages.sury.org/php/README.txt | bash -x; \
        apt-get install -y --no-install-recommends \
        libc-client2007e-dev \
        ; \
        docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \
        docker-php-ext-install \
            bz2 \
            imap \
        ; \
        pecl install smbclient; \
        docker-php-ext-enable smbclient; \
        \
    # reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies
        apt-mark auto '.*' > /dev/null; \
        apt-mark manual $savedAptMark; \
        ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
            | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \
            | sort -u \
            | xargs -r dpkg-query --search \
            | cut -d: -f1 \
            | sort -u \
            | xargs -rt apt-mark manual; \
        \
        apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
        rm -rf /var/lib/apt/lists/*
    
    RUN mkdir -p \
        /var/log/supervisord \
        /var/run/supervisord \
    ;
    
    COPY supervisord.conf /
    
    ENV NEXTCLOUD_UPDATE=1
    
    CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]
    
  13. coolapso commented on Feb 11, 2026

    @coolapso

    This has been around for a while with plenty of possible solutions presented, is there any prospects of any of this hitting main branch any time soon?

  14. coolapso commented on Feb 11, 2026

    @coolapso

    @kodukon thanks a lot for your supervisord and Dockerfile, I was able to use it and successfully updated from 31.0.7 to 32.0.5.

    This being said, I shamelessly copied that into my automated build repository coolapso/docker-nextcloud-full, feel free to use the images if it is of interest or useful for anyone! builds are automated and run on a daily basis to get new releases as quick as possible!

  15. kodukon commented on Feb 21, 2026

    @kodukon

    @kodukon thanks a lot for your supervisord and Dockerfile, I was able to use it and successfully updated from 31.0.7 to 32.0.5.

    This being said, I shamelessly copied that into my automated build repository coolapso/docker-nextcloud-full, feel free to use the images if it is of interest or useful for anyone! builds are automated and run on a daily basis to get new releases as quick as possible!

    No problem. I glad to see that this is helpful for you

  16. tzerber commented on Feb 21, 2026

    @tzerber
    Contributor

    I was looking at this issue in order to update the examples, but after trying to find a proper way to fix the problem I noticed something else. For everyone's reading I will try to pop what I've found here:

    The old libc-client-dev was removed, because it was very old and unmaintained, and not compatible with OpenSSL 3.
    The so-called new libc-client-2007e was removed because it was quite buggy and old too (and by the looks of their repo - unmaintained as well).
    The entire php-imap library was removed for the same reasons / security reasons.

    php-imap (from what i've found so far) is used only for quote dependencies required to authenticate users via imap . I believe most of the people here complaining aren't even using IMAP based auth, they want their container built.

    nextcloud/user_external#281 Looking at this and the other issues in the user_external app, and the fact services are dropping non-OAuth IMAP support, should we remove it in general as both insecure and (very soon) obsolete ?

    CC @joshtrichards You have a whole broader look at the ecosystem, please tell me what you think. Honestly, for the sake of successful container build I'd remove IMAP as whole from the examples. EDIT: And leave a large shiny warning why it was removed.

    Sources : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1092646 ; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1116284 ;

  17. mateuszdrab commented on Mar 18, 2026

    @mateuszdrab

    @kodukon thanks a lot for your supervisord and Dockerfile, I was able to use it and successfully updated from 31.0.7 to 32.0.5.

    This being said, I shamelessly copied that into my automated build repository coolapso/docker-nextcloud-full, feel free to use the images if it is of interest or useful for anyone! builds are automated and run on a daily basis to get new releases as quick as possible!

    Hey @nick-oconnor

    Thanks for maintaining the automated repository.

    I wanted to flag that I noticed something's not right with some builds - for example, I'm running 33.0.0-fpm-alpine yet nextcloud reports 32.0.6 and when I run 32.0.6-fpm-alpine I think it's 32.0.5.0 if I remember right.

    Do you mind taking a look at that?

    Same happened with the apache images before I switched.

  18. coolapso commented on Mar 18, 2026

    @coolapso

    @kodukon thanks a lot for your supervisord and Dockerfile, I was able to use it and successfully updated from 31.0.7 to 32.0.5.
    This being said, I shamelessly copied that into my automated build repository coolapso/docker-nextcloud-full, feel free to use the images if it is of interest or useful for anyone! builds are automated and run on a daily basis to get new releases as quick as possible!

    Hey @nick-oconnor

    Thanks for maintaining the automated repository.

    I wanted to flag that I noticed something's not right with some builds - for example, I'm running 33.0.0-fpm-alpine yet nextcloud reports 32.0.6 and when I run 32.0.6-fpm-alpine I think it's 32.0.5.0 if I remember right.

    Do you mind taking a look at that?

    Same happened with the apache images before I switched.

    @mateuszdrab hmm thinking you may be making some kind of confusion? i have the automated repositories and i am in no way affiliated with nextcloud, I made that for my self and its open for whoever that may be useful in the meantime. if you notice any issue with that then the right place to report that is in the repository where I make the automated builds. unless I misunderstood what you meant and in that case, my apologies.

    please let's try to reduce the noise and leave this issue thread for relevant information related to it

  19. mateuszdrab commented on Mar 18, 2026

    @mateuszdrab

    Sorry, didn't mean to hijack this thread. I attempted to find the right repository where you host the pipeline files but couldn't.

    If you look here you'll see the variable NEXTCLOUD_VERSION=32.0.6 set.

    https://github.com/nextcloud/docker/blob/master/.examples/dockerfiles/full/fpm-alpine/Dockerfile uses nextcloud:fpm-alpine as base image which has been updated today.

    I am not sure how you're building the images; however, you shouldn't auto-build against nextcloud:fpm-alpine as there is no guarantee the tag will be the latest version. You should build against specific versioned tags.

    Perhaps re-triggering the pipeline to build for the tag would resolve it. It's quite possible the build was done off a wrong image.

    Edit again: damn, I didn't notice the link was here all this time https://github.com/coolapso/docker-nextcloud-full

  20. zyberwoof commented on Jun 7, 2026

    @zyberwoof

    I just used the Apache build shared above by @coolapso and NextCloud built successfully to version 33.5.

    I changed the NEXTCLOUD_VERSION ARG to 33-apache, along with adding a section at the end to install libreoffice, default-jre, and libreoffice-java-common via apt. My modifications were due to personal preference. I believe they had no impact on the build's overall success.

    I'm sharing this to here in case it helps anyone else.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions