Discourse does not start up

Recently, I have been deploying Discourse, but encountered an issue that prevents it from starting.

The error is as follows:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs $(($(nproc) - 1)) --without test development' failed with return #<Process::Status: pid 1193 exit 15>
Location of failure: /usr/local/lib/ruby/gems/3.4.0/gems/pups-1.4.0/lib/pups/exec_command.rb:138:in 'Pups::ExecCommand#spawn'
exec failed with the params {"cd" => "$home", "cmd" => ["echo \"gem 'mysql2'\" >> Gemfile", "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmariadb-dev", "su discourse -c 'bundle config unset deployment'", "su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs $(($(nproc) - 1)) --without test development'"]}
bootstrap failed with exit code 15
** 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.
7a849a20b51e8b8ff94c6ac3727c393aeb899e9b48b7d2313931232ceb9e6411

Configuration file is as follows:

## this is the all-in-one, standalone Discourse Docker container template
##
## After making changes to this file, you MUST rebuild
## /var/discourse/launcher rebuild app
##
## BE *VERY* CAREFUL WHEN EDITING!
## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
## visit http://www.yamllint.com/ to validate this file as needed

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/import/mysql-dep.template.yml"
  #- "templates/web.ratelimited.template.yml"
  ## Uncomment these two lines if you wish to add Lets Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
  - "8000:80" # http
  #- "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.chinese"

  ## Set db_shared_buffers to a max of 25% of the total memory.
  ## will be set automatically by bootstrap based on detected RAM, or you can override
  #db_shared_buffers: "256MB"

  ## can improve sorting performance, but adds memory usage per-connection
  #db_work_mem: "40MB"

  ## Which Git revision should this container use? (default: latest)
  #version: latest

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## How many concurrent web requests are supported? Depends on memory and CPU cores.
  ## will be set automatically by bootstrap based on detected CPUs, or you can override
  #UNICORN_WORKERS: 3

  ## TODO: The domain name this Discourse instance will respond to
  ## Required. Discourse will not work with a bare IP number.
  DISCOURSE_HOSTNAME: "forum.akarinliu.com"

  ## Uncomment if you want the container to be started with the same
  ## hostname (-h option) as specified above (default "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: List of comma delimited emails that will be made admin and developer
  ## on initial signup example 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: "forum.akarinliu.com"

  ## TODO: Configure the mail server
  ##       (used for validation of new accounts, notifications, digests, etc.)
  ## required: hostname of the SMTP mail server used to send mail
  DISCOURSE_SMTP_ADDRESS: smtp.exmail.qq.com
  ## uncomment to set the port to something other than the default (25)
  DISCOURSE_SMTP_PORT: 587
  ## USER_NAME / PASSWORD required if the SMTP provider needs authentication
  ## WARNING: a '#' in the SMTP password can be misinterpreted; ensure it's inside string quotes, e.g.:
  ##   DISCOURSE_SMTP_PASSWORD: "#pass#ord"
  DISCOURSE_SMTP_USER_NAME: noreply@akarinliu.com
  DISCOURSE_SMTP_PASSWORD: "***"
  ## uncomment to enable implicit TLS at connection time, probably needed for using port 465
  #DISCOURSE_SMTP_FORCE_TLS: true
  ## uncomment to set the HELO/EHLO domain, only set if required by provider
  #DISCOURSE_SMTP_DOMAIN: discourse.example.com
  ## the address from which notifications are sent
  #DISCOURSE_NOTIFICATION_EMAIL: noreply@discourse.example.com
  ## uncomment to change server certificate verification
  #DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: peer # peer|none
  ## uncomment to override the authentication method
  #DISCOURSE_SMTP_AUTHENTICATION: plain # plain|login|cram_md5
  # Optional email setup skip flag
  #DISCOURSE_SKIP_EMAIL_SETUP: "1" # (optional), uncomment to skip email setup validation

  ## The http or https CDN address for this Discourse instance (configured to pull)
  ## see https://meta.discourse.org/t/14857 for details
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## The maxmind geolocation IP account ID and license key for IP address lookups
  ## see https://meta.discourse.org/t/-/173941 for details
  DISCOURSE_MAXMIND_ACCOUNT_ID: 1083541
  DISCOURSE_MAXMIND_LICENSE_KEY: '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'

## The Docker container is stateless; all data is stored in /shared
volumes:
  - volume:
      host: ./shared
      guest: /shared
  - volume:
      host: ./log/var-log
      guest: /var/log

## Plugins go here
## see https://meta.discourse.org/t/19157 for details
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## Any custom commands to run after building
run:
  - exec: echo "Beginning of custom commands"
  ## If you want to set the 'From' email address for your first registration, uncomment and change:
  ## After getting the first signup email, re-comment the line. It only needs to run once.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"

(post deleted by author)

Do this and share :slight_smile:

Yes - please paste at least 100 lines.

If your server is in China, it’s most likely a network issue. Judging by your logs, it seems to be stuck while downloading the gem package. Don’t worry, I’m experiencing the same thing; I haven’t been able to refactor these past few days due to various network problems.

This might be because the national college entrance exams are taking place in China right now, leading to severe network restrictions. I suggest trying again after this period or using a proxy.