Skip to content

Docker issues #280

Description

@BugZappa

Davis version

5.4.3

Installation method

Docker – barebone (no reverse proxy)

PHP version (bare metal only)

No response

Database

MySQL

Reverse proxy

Traefik

Authentication method

Internal (ADMIN_LOGIN / ADMIN_PASSWORD)

Affected protocol(s)

  • CalDAV
  • CardDAV
  • WebDAV
  • Admin dashboard
  • API

Client(s) exhibiting the issue

I've been diving into different calendar applications to figure out what works best for me, i tried following the docker-compose.yml supplied to the best of my ability however, i believe these files are outdated and or missing details.

The image claims to be davis:latest however it should be ghcr.io/tchapi/davis-standalone:latest for the latest release as documented here.

After spending time finding the correct image and getting the mariadb and davis containers started i was able to connect to the port and was immediately greeted with a php exception error from Symfony

Image
require_once('/var/www/davis/vendor/autoload_runtime.php') in[ /var/www/davis/public/index.php ](file:///var/www/davis/public/index.php#L14)(line 14)

    }
    use App\Kernel;
    use Symfony\Component\Dotenv\Dotenv;
    require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
    if ($overridenEnvDir) {
        // Load our own now, after the runtime has booted
        (new Dotenv())->bootEnv($overridenEnvDir.'/.env');
    }

Stacktrace

Symfony\Component\ErrorHandler\Error\ClassNotFoundError:
Attempted to load class "WebProfilerBundle" from namespace "Symfony\Bundle\WebProfilerBundle".
Did you forget a "use" statement for another namespace?

  at /var/www/davis/vendor/symfony/framework-bundle/Kernel/MicroKernelTrait.php:157
  at App\Kernel->registerBundles()
     (/var/www/davis/vendor/symfony/http-kernel/Kernel.php:356)
  at Symfony\Component\HttpKernel\Kernel->initializeBundles()
     (/var/www/davis/vendor/symfony/http-kernel/Kernel.php:761)
  at Symfony\Component\HttpKernel\Kernel->preBoot()
     (/var/www/davis/vendor/symfony/http-kernel/Kernel.php:172)
  at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
     (/var/www/davis/vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (/var/www/davis/vendor/autoload_runtime.php:32)
  at require_once('/var/www/davis/vendor/autoload_runtime.php')
     (/var/www/davis/public/index.php:14)                

Relevant environment variables

---
  mysql:
    image: mariadb:10.6.10
    container_name: mysql
    environment:
      - MYSQL_ROOT_PASSWORD=DB-ROOT-PASSWORD
      - MYSQL_DATABASE=davis-db
      - MYSQL_USER=admin
      - MYSQL_PASSWORD=DB-PASSWORD
    volumes:
      - ./config/davis/db:/var/lib/mysql
    networks:
      - misc
  davis:
    # build:
    #   context: ../
    #   dockerfile: ./docker/Dockerfile-standalone
    image: ghcr.io/tchapi/davis-standalone:latest
    # If you want to use a prebuilt image from Github
    # image: ghcr.io/tchapi/davis-standalone:edge
    container_name: davis-standalone
    env_file: .env
    environment:
      - DATABASE_DRIVER=mysql
      - DATABASE_URL=mysql://admin:DB-PASSWORD@mysql:3306/davis-db?serverVersion=mariadb-10.6.10&charset=utf8mb4
      - MAILER_DSN=smtp://MY-SMTP-USERNAME:MY-SMTP-PASSWORD@MY-SMTP-HOST:587
    depends_on:
      - mysql
    ports:
      - 9010:9000
    networks:
      - misc

Steps to reproduce

Step 1) Configure docker-compose.yml
Step 2) Realize the image documented does not exist
Step 3) Find the repo the image resides in
Step 4) Correct image in docker-compose.yml
Step 5) Configure environment variables, volumes and virtual network based on documentation (SMTP, DB Username/password, Docker bridge network, etc)
Step 6) Start containers
Step 7) Make http request to port
Step 8) Greeted with PHP errors

Expected behaviour

no php exception errors

Actual behaviour

php exception errors

Logs

┌─[user@debian] - [~/compose] - [Wed Jul 29, 17:03]
└─[$]> sudo docker logs davis-standalone               
2026-07-30 00:03:25,150 INFO Set uid to user 0 succeeded
2026-07-30 00:03:25,154 INFO RPC interface 'supervisor' initialized
2026-07-30 00:03:25,154 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2026-07-30 00:03:25,154 INFO supervisord started with pid 1
2026-07-30 00:03:26,156 INFO spawned: 'caddy' with pid 7
2026-07-30 00:03:26,158 INFO spawned: 'php-fpm' with pid 8
2026-07-30 00:03:27,234 INFO success: caddy entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2026-07-30 00:03:27,234 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)


DB LOGS


┌─[user@debian] - [~/compose] - [Wed Jul 29, 17:13]
└─[$]> sudo docker logs mysql                          
2026-07-30 00:01:38+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.10+maria~ubu2004 started.
2026-07-30 00:01:38+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2026-07-30 00:01:38+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.6.10+maria~ubu2004 started.
2026-07-30 00:01:38+00:00 [Note] [Entrypoint]: Initializing database files


PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following command:

'/usr/bin/mysql_secure_installation'

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the MariaDB Knowledgebase at https://mariadb.com/kb

Please report any problems at https://mariadb.org/jira

The latest information about MariaDB is available at https://mariadb.org/.

Consider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/

2026-07-30 00:01:40+00:00 [Note] [Entrypoint]: Database files initialized
2026-07-30 00:01:40+00:00 [Note] [Entrypoint]: Starting temporary server
2026-07-30 00:01:40+00:00 [Note] [Entrypoint]: Waiting for server startup
2026-07-30  0:01:40 0 [Note] mariadbd (server 10.6.10-MariaDB-1:10.6.10+maria~ubu2004) starting as process 98 ...
2026-07-30  0:01:41 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2026-07-30  0:01:41 0 [Note] InnoDB: Number of pools: 1
2026-07-30  0:01:41 0 [Note] InnoDB: Using SSE4.2 crc32 instructions
2026-07-30  0:01:41 0 [Note] InnoDB: Using Linux native AIO
2026-07-30  0:01:41 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728
2026-07-30  0:01:41 0 [Note] InnoDB: Completed initialization of buffer pool
2026-07-30  0:01:41 0 [Note] InnoDB: 128 rollback segments are active.
2026-07-30  0:01:41 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2026-07-30  0:01:41 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2026-07-30  0:01:41 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2026-07-30  0:01:41 0 [Note] InnoDB: 10.6.10 started; log sequence number 42266; transaction id 14
2026-07-30  0:01:41 0 [Note] Plugin 'FEEDBACK' is disabled.
2026-07-30  0:01:41 0 [Warning] 'user' entry 'root@6d97c6cd4f5a' ignored in --skip-name-resolve mode.
2026-07-30  0:01:41 0 [Warning] 'proxies_priv' entry '@% root@6d97c6cd4f5a' ignored in --skip-name-resolve mode.
2026-07-30  0:01:41 0 [Note] mariadbd: ready for connections.
Version: '10.6.10-MariaDB-1:10.6.10+maria~ubu2004'  socket: '/run/mysqld/mysqld.sock'  port: 0  mariadb.org binary distribution
2026-07-30 00:01:41+00:00 [Note] [Entrypoint]: Temporary server started.
2026-07-30 00:01:43+00:00 [Note] [Entrypoint]: Creating database davis-db
2026-07-30 00:01:43+00:00 [Note] [Entrypoint]: Creating user admin
2026-07-30 00:01:43+00:00 [Note] [Entrypoint]: Giving user admin access to schema davis-db
2026-07-30 00:01:43+00:00 [Note] [Entrypoint]: Securing system users (equivalent to running mysql_secure_installation)

2026-07-30 00:01:43+00:00 [Note] [Entrypoint]: Stopping temporary server
2026-07-30  0:01:43 0 [Note] mariadbd (initiated by: unknown): Normal shutdown
2026-07-30  0:01:43 0 [Note] InnoDB: FTS optimize thread exiting.
2026-07-30  0:01:43 0 [Note] InnoDB: Starting shutdown...
2026-07-30  0:01:43 0 [Note] InnoDB: Dumping buffer pool(s) to /var/lib/mysql/ib_buffer_pool
2026-07-30  0:01:43 0 [Note] InnoDB: Buffer pool(s) dump completed at 260730  0:01:43
2026-07-30  0:01:43 0 [Note] InnoDB: Removed temporary tablespace data file: "./ibtmp1"
2026-07-30  0:01:43 0 [Note] InnoDB: Shutdown completed; log sequence number 42278; transaction id 15
2026-07-30  0:01:43 0 [Note] mariadbd: Shutdown complete

2026-07-30 00:01:43+00:00 [Note] [Entrypoint]: Temporary server stopped

2026-07-30 00:01:43+00:00 [Note] [Entrypoint]: MariaDB init process done. Ready for start up.

2026-07-30  0:01:43 0 [Note] mariadbd (server 10.6.10-MariaDB-1:10.6.10+maria~ubu2004) starting as process 1 ...
2026-07-30  0:01:43 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2026-07-30  0:01:43 0 [Note] InnoDB: Number of pools: 1
2026-07-30  0:01:43 0 [Note] InnoDB: Using SSE4.2 crc32 instructions
2026-07-30  0:01:43 0 [Note] InnoDB: Using Linux native AIO
2026-07-30  0:01:43 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728
2026-07-30  0:01:43 0 [Note] InnoDB: Completed initialization of buffer pool
2026-07-30  0:01:43 0 [Note] InnoDB: 128 rollback segments are active.
2026-07-30  0:01:43 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2026-07-30  0:01:43 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2026-07-30  0:01:43 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2026-07-30  0:01:43 0 [Note] InnoDB: 10.6.10 started; log sequence number 42278; transaction id 14
2026-07-30  0:01:43 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
2026-07-30  0:01:43 0 [Note] Plugin 'FEEDBACK' is disabled.
2026-07-30  0:01:43 0 [Note] InnoDB: Buffer pool(s) load completed at 260730  0:01:43
2026-07-30  0:01:43 0 [Warning] You need to use --log-bin to make --expire-logs-days or --binlog-expire-logs-seconds work.
2026-07-30  0:01:43 0 [Note] Server socket created on IP: '0.0.0.0'.
2026-07-30  0:01:43 0 [Note] Server socket created on IP: '::'.
2026-07-30  0:01:43 0 [Note] mariadbd: ready for connections.
Version: '10.6.10-MariaDB-1:10.6.10+maria~ubu2004'  socket: '/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions