wallabag / docker

Official docker-composer for wallabag.
608 stars 153 forks source link

Unable to start Wallabag - Fresh install w/ sqlite #419

Open erkerb4 opened 3 months ago

erkerb4 commented 3 months ago

Hello,

First, thank you very much for the project! I am attempting to get started with Wallabag using a simple setup with SQLite; however, I am running into an issue during the first startup. I am trying to deploy it with docker, and the error I am getting is "/entrypoint.sh: line 30: can't create app/config/parameters.yml: nonexistent directory".

Here is my docker-compose.yml

version: "3.9"
services:
  wallabag:
    image: ghcr.io/wallabag/docker:2.6.9
    restart: unless-stopped
    environment:
      - SYMFONY__ENV__DATABASE_DRIVER=pdo_sqlite
      - SYMFONY__ENV__DOMAIN_NAME=https://wallabag.home.lab
      - SYMFONY__ENV__SERVER_NAME="Wallabag"
    volumes:
      - /mnt/data/wallabag:/var/www/wallabag
    healthcheck:
      test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost/api/info"]
      interval: 1m
      timeout: 3s
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wallabag.entrypoints=websecure"
      - "traefik.http.routers.wallabag.tls=true"
      - "traefik.http.routers.wallabag.tls.certresolver=le"
      - "traefik.http.routers.wallabag.rule=Host(`wallabag.home.lab`)"
      - "traefik.http.routers.wallabag.service=wallabagwebui"
      - "traefik.http.services.wallabagwebui.loadbalancer.server.port=80"
      - "traefik.http.services.wallabagwebui.loadbalancer.server.scheme=http"

Here is the logs:

wallabag-1  | Starting wallabag ...
wallabag-1  | /entrypoint.sh: line 30: can't create app/config/parameters.yml: nonexistent directory

I have also added redis, thinking there maybe missing vars however that did not change the response. To make it easy to read, I only included wallabag deployment details from my docker-compose file.

erkerb4 commented 3 months ago

Alright, I made a bit of progress. I realized that mounting at /var/www/wallabag was the culprit. After reviewing the entrypoint, i realized it was a relative path, which then explains the nonexistent directory.

This is the updated docker-compose now:

version: "3.9"
services:
  wallabag:
    image: ghcr.io/wallabag/docker:2.6.9
    restart: unless-stopped
    environment:
      - SYMFONY__ENV__DATABASE_DRIVER=pdo_sqlite
      - SYMFONY__ENV__DOMAIN_NAME=https://wallabag.home.lab
      - SYMFONY__ENV__SERVER_NAME="Wallabag"
    volumes:
    volumes:
      - /mnt/data/wallabag/data:/var/www/wallabag/data
      - /mnt/data/wallabag/images:/var/www/wallabag/web/assets/images
    healthcheck:
      test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost/api/info"]
      interval: 1m
      timeout: 3s
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.wallabag.entrypoints=websecure"
      - "traefik.http.routers.wallabag.tls=true"
      - "traefik.http.routers.wallabag.tls.certresolver=le"
      - "traefik.http.routers.wallabag.rule=Host(`wallabag.home.lab`)"
      - "traefik.http.routers.wallabag.service=wallabagwebui"
      - "traefik.http.services.wallabagwebui.loadbalancer.server.port=80"
      - "traefik.http.services.wallabagwebui.loadbalancer.server.scheme=http"

wallabag-1  | Starting wallabag ...
wallabag-1  | Configuring the SQLite database ...
wallabag-1  |
wallabag-1  | In ExceptionConverter.php line 76:
wallabag-1  |
wallabag-1  |   An exception occurred in the driver: SQLSTATE[HY000] [14] unable to open da
wallabag-1  |   tabase file
wallabag-1  |
wallabag-1  |
wallabag-1  |
wallabag-1  | In Exception.php line 28:
wallabag-1  |
wallabag-1  |   SQLSTATE[HY000] [14] unable to open database file
wallabag-1  |
wallabag-1  |
wallabag-1  |
wallabag-1  | In Driver.php line 44:
wallabag-1  |
wallabag-1  |   SQLSTATE[HY000] [14] unable to open database file
wallabag-1  |
wallabag-1  | wallabag installer
wallabag-1  | ==================
wallabag-1  |
wallabag-1  |
wallabag-1  | Step 1 of 4: Checking system requirements.
wallabag-1  | ------------------------------------------
wallabag-1  |
wallabag-1  |
wallabag-1  |  ------------------------- -------- -----------------------------------------------------------------------------------------------------------------------
wallabag-1  |   Checked                   Status   Recommendation
wallabag-1  |  ------------------------- -------- -----------------------------------------------------------------------------------------------------------------------
wallabag-1  |   PDO Driver (pdo_sqlite)   OK!
wallabag-1  |   Database connection       ERROR!   Can't connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [14] unable to open database file
wallabag-1  |   Database version          OK!
wallabag-1  |   curl_exec                 OK!
wallabag-1  |   curl_multi_init           OK!
wallabag-1  |  ------------------------- -------- -----------------------------------------------------------------------------------------------------------------------
wallabag-1  |
wallabag-1  |
wallabag-1  | 00:02:34 CRITICAL  [console] Error thrown while running command "wallabag:install --env=prod -n". Message: "Some system requirements are not fulfilled. Please check output messages and fix them." ["exception" => RuntimeException { …},"command" => "wallabag:install --env=prod -n","message" => "Some system requirements are not fulfilled. Please check output messages and fix them."]
wallabag-1  |
wallabag-1  |
wallabag-1  | In InstallCommand.php line 188:
wallabag-1  |
wallabag-1  |   Some system requirements are not fulfilled. Please check output messages an
wallabag-1  |   d fix them.
wallabag-1  |
wallabag-1  |
wallabag-1  |
wallabag-1  | wallabag:install [--reset] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>

Let's see what i am missing now.

Kdecherf commented 3 months ago

Hello @erkerb4,

The database will be written in a db/ subfolder, ensure that the container can write in your host folder /mnt/data/wallabag/data

erkerb4 commented 3 months ago

Hello @erkerb4,

The database will be written in a db/ subfolder, ensure that the container can write in your host folder /mnt/data/wallabag/data

Hello!

Yes, the container has full access to /mint/data/wallabag/data directory. The container is running as root, and creates the db directory. That's all it does.