Learning how to deploy discourse on docker, on premise, following/using this project. I can’t find any “Issues” there so I ask here.
I work on a packer-project deploying the whole stack via ansible, the target machine is a small local debian-12 VM right now (docker-ce 28.2.2).
The app.yml is more or less close to the default from the repo. I only add labels to the container (integration with traefik) and something like that. Same app.yml built fine on another debian server.
Things fail at ./launcher bootstrap app
:
From https://github.com/discourse/discourse
* branch tests-passed -> FETCH_HEAD
* [new branch] tests-passed -> origin/tests-passed
I, [2025-06-19T15:01:57.466297 #1] INFO -- :
I, [2025-06-19T15:01:57.466503 #1] INFO -- : > cd /var/www/discourse && git checkout tests-passed
Switched to a new branch 'tests-passed'
I, [2025-06-19T15:02:00.166283 #1] INFO -- : Branch 'tests-passed' set up to track remote branch 'tests-passed' from 'origin'.
I, [2025-06-19T15:02:00.166430 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp
I, [2025-06-19T15:02:00.173066 #1] INFO -- :
I, [2025-06-19T15:02:00.173236 #1] INFO -- : > cd /var/www/discourse && chown discourse:www-data tmp
I, [2025-06-19T15:02:00.178867 #1] INFO -- :
I, [2025-06-19T15:02:00.178989 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp/pids
I, [2025-06-19T15:02:00.183569 #1] INFO -- :
I, [2025-06-19T15:02:00.183662 #1] INFO -- : > cd /var/www/discourse && mkdir -p tmp/sockets
I, [2025-06-19T15:02:00.189147 #1] INFO -- :
I, [2025-06-19T15:02:00.189258 #1] INFO -- : > cd /var/www/discourse && touch tmp/.gitkeep
I, [2025-06-19T15:02:00.195217 #1] INFO -- :
I, [2025-06-19T15:02:00.195305 #1] INFO -- : > cd /var/www/discourse && mkdir -p /shared/log/rails
I, [2025-06-19T15:02:00.200411 #1] INFO -- :
I, [2025-06-19T15:02:00.200507 #1] INFO -- : > cd /var/www/discourse && bash -c "touch -a /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log"
I, [2025-06-19T15:02:00.208619 #1] INFO -- :
I, [2025-06-19T15:02:00.208771 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log /var/www/discourse/log"
I, [2025-06-19T15:02:00.215673 #1] INFO -- :
I, [2025-06-19T15:02:00.215824 #1] INFO -- : > cd /var/www/discourse && bash -c "mkdir -p /shared/{uploads,backups}"
I, [2025-06-19T15:02:00.222167 #1] INFO -- :
I, [2025-06-19T15:02:00.222270 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/{uploads,backups} /var/www/discourse/public"
I, [2025-06-19T15:02:00.229600 #1] INFO -- :
I, [2025-06-19T15:02:00.229707 #1] INFO -- : > cd /var/www/discourse && bash -c "mkdir -p /shared/tmp/{backups,restores}"
I, [2025-06-19T15:02:00.236308 #1] INFO -- :
I, [2025-06-19T15:02:00.236383 #1] INFO -- : > cd /var/www/discourse && bash -c "ln -s /shared/tmp/{backups,restores} /var/www/discourse/tmp"
I, [2025-06-19T15:02:00.243571 #1] INFO -- :
I, [2025-06-19T15:02:00.243892 #1] INFO -- : > cd /var/www/discourse && chown -R discourse:www-data /shared/log/rails /shared/uploads /shared/backups /shared/tmp
I, [2025-06-19T15:02:00.249403 #1] INFO -- :
I, [2025-06-19T15:02:00.249501 #1] INFO -- : > cd /var/www/discourse && find public/plugins/ -maxdepth 1 -xtype l -delete
I, [2025-06-19T15:02:00.258481 #1] INFO -- :
I, [2025-06-19T15:02:00.258881 #1] INFO -- : Replacing # redis with sv start redis || exit 1 in /etc/service/unicorn/run
I, [2025-06-19T15:02:00.259572 #1] INFO -- : > cd /var/www/discourse/plugins && git clone https://github.com/discourse/docker_manager.git
Cloning into 'docker_manager'...
I, [2025-06-19T15:02:02.757529 #1] INFO -- :
I, [2025-06-19T15:02:02.757835 #1] INFO -- : > cp /var/www/discourse/config/nginx.sample.conf /etc/nginx/conf.d/discourse.conf
I, [2025-06-19T15:02:02.764975 #1] INFO -- :
I, [2025-06-19T15:02:02.765341 #1] INFO -- : > rm /etc/nginx/sites-enabled/default
I, [2025-06-19T15:02:02.771575 #1] INFO -- :
I, [2025-06-19T15:02:02.771778 #1] INFO -- : > mkdir -p /var/nginx/cache
I, [2025-06-19T15:02:02.775586 #1] INFO -- :
I, [2025-06-19T15:02:02.776449 #1] INFO -- : Replacing pid /run/nginx.pid; with daemon off; in /etc/nginx/nginx.conf
I, [2025-06-19T15:02:02.776770 #1] INFO -- : Replacing (?m-ix:upstream[^\}]+\}) with upstream discourse { server 127.0.0.1:3000; } in /etc/nginx/conf.d/discourse.conf
I, [2025-06-19T15:02:02.777222 #1] INFO -- : Replacing (?-mix:server_name.+$) with server_name _ ; in /etc/nginx/conf.d/discourse.conf
I, [2025-06-19T15:02:02.777470 #1] INFO -- : Replacing (?-mix:client_max_body_size.+$) with client_max_body_size $upload_size ; in /etc/nginx/conf.d/discourse.conf
I, [2025-06-19T15:02:02.777812 #1] INFO -- : > echo "done configuring web"
I, [2025-06-19T15:02:02.781599 #1] INFO -- : done configuring web
I, [2025-06-19T15:02:02.781828 #1] INFO -- : > cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock)
ERROR: Error installing bundler:
bundler-2.6.4 requires Ruby version >= 3.1.0. The current ruby version is 2.7.2.137.
I, [2025-06-19T15:02:03.280749 #1] INFO -- :
I, [2025-06-19T15:02:03.281100 #1] INFO -- : Terminating async processes
I, [2025-06-19T15:02:03.281175 #1] INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 60
I, [2025-06-19T15:02:03.281235 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 177
177:signal-handler (1750345323) Received SIGTERM scheduling shutdown...
2025-06-19 15:02:03.281 UTC [60] LOG: received fast shutdown request
2025-06-19 15:02:03.309 UTC [60] LOG: aborting any active transactions
2025-06-19 15:02:03.311 UTC [60] LOG: background worker "logical replication launcher" (PID 69) exited with exit code 1
2025-06-19 15:02:03.312 UTC [64] LOG: shutting down
177:M 19 Jun 2025 15:02:03.324 # User requested shutdown...
177:M 19 Jun 2025 15:02:03.324 * Saving the final RDB snapshot before exiting.
177:M 19 Jun 2025 15:02:03.347 * DB saved on disk
177:M 19 Jun 2025 15:02:03.347 # Redis is now ready to exit, bye bye...
2025-06-19 15:02:03.493 UTC [60] LOG: database system is shut down
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,""); print $0 }' Gemfile.lock) failed with return #<Process::Status: pid 315 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,\"\"); print $0 }' Gemfile.lock)", "find $home ! -user discourse -exec chown discourse {} \\+"]}
3539ee62a81cc2a309d4bfcf4fc6049bd70749d8f7c87bd2bf634eaf33fa4b7b
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
Any hints on how to fix that? help appreciated …
Regards, Stefan
EDIT: increased RAM to 8GB, didn’t change the situation