[BUG] php artisan bookstack:update-url can't use $FILE__DB_PASSWORD
arajczy opened this issue · 3 comments
Is there an existing issue for this?
- I have searched the existing issues
Current Behavior
running podman exec -it bookstack php /app/www/artisan bookstack:update-url <old-url> <new-url>
when using the environment FILE__DB_PASSWORD
results in:
PDOException
SQLSTATE[HY000] [1045] Access denied for user 'bookstack'@'10.0.0.2' (using password: YES)
at /app/www/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:65
61▕ * @return \PDO
62▕ /
63▕ protected function createPdoConnection($dsn, $username, $password, $options)
64▕ {
➜ 65▕ return new PDO($dsn, $username, $password, $options);
66▕ }
67▕
68▕ /*
69▕ * Handle an exception that occurred during connect execution.+6 vendor frames7 /app/www/app/Console/Commands/UpdateUrlCommand.php:96
Illuminate\Database\Connection::getPdo()8 /app/www/app/Console/Commands/UpdateUrlCommand.php:59
BookStack\Console\Commands\UpdateUrlCommand::replaceValueInTable()
Expected Behavior
if I am using the environment DB_PASSWORD instead of FILE__DB_PASSWORD the cli command runs without error.
Steps To Reproduce
set container environment FILE__DB_PASSWORD from podman secret then run php /app/www/artisan bookstack:update-url <old-url> <new-url> inside the running container.
Environment
- OS: Fedora 40
- How docker service was installed: sudo dnf install -y podmanCPU architecture
x86-64
Docker creation
[Unit]
Description=BookStack Container
Wants=mariadb.service
After=mariadb.service
[Container]
ContainerName=bookstack
Environment=APP_URL=https://example.com
Environment=DB_HOST=mariadb
Environment=DB_USERNAME=bookstack
Environment=DB_DATABASE=bookstack
Environment=FILE__APP_KEY=/run/secrets/bookstack-appkey
Environment=FILE__DB_PASSWORD=/run/secrets/bookstack-db-pass
Environment=QUEUE_CONNECTION=database
HostName=bookstack
Image=lscr.io/linuxserver/bookstack:latest
Network=mariadb.network
Notify=common
PublishPort=8080:80/tcp
Secret=bookstack-appkey
Secret=bookstack-db-pass
Timezone=local
Volume=bookstack.volume:/config
[Service]
Restart=on-failure
TimeoutStopSec=70
[Install]
WantedBy=default.targetContainer logs
[migrations] started
[migrations] 01-nginx-site-confs-default: skipped
[migrations] 02-default-location: skipped
[migrations] done
usermod: no changes
───────────────────────────────────────
██╗ ███████╗██╗ ██████╗
██║ ██╔════╝██║██╔═══██╗
██║ ███████╗██║██║ ██║
██║ ╚════██║██║██║ ██║
███████╗███████║██║╚██████╔╝
╚══════╝╚══════╝╚═╝ ╚═════╝
Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID: 911
User GID: 911
───────────────────────────────────────
Linuxserver.io version: v24.10-ls169
Build-date: 2024-10-14T15:22:13+00:00
───────────────────────────────────────
using keys found in /config/keys
Waiting for DB to be available
INFO Nothing to migrate.
[custom-init] No custom files found, skipping...
*** Starting Async Action Queue ***
[ls.io-init] done.Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.
s6 sandboxes the environment where we inject secrets, so it's not available from an external bash shell.
Try s6-envdir /run/s6/container_environment php /app/www/artisan bookstack:update-url <old-url> <new-url>
thank you, it worked. 😀