No se puede reconstruir debido a la actualización fallida de postgres 12

Hola,

Estoy atascado con lo siguiente. Al ejecutar el comando ./discourse-setup, obtengo el siguiente error:

No estoy seguro de entender el mensaje; mi sitio web está en vivo y funcionando en https://cp2077.eu/ con SSL.

Aquí está mi archivo app.yml:

## este es la plantilla de contenedor Docker Discourse todo en uno, independiente
##
## Después de realizar cambios en este archivo, DEBES reconstruir
## /var/discourse/launcher rebuild app
##
## TEN *MUCHO* CUIDADO AL EDITAR!
## ¡LOS ARCHIVOS YAML SON SUPER SENSIBLES A ERRORES EN ESPACIOS EN BLANCO O ALINEACIÓN!
## visita http://www.yamllint.com/ para validar este archivo según sea necesario

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/sshd.template.yml"
  - "templates/web.ratelimited.template.yml"
## Descomenta estas dos líneas si deseas agregar Lets Encrypt (https)
##  - "templates/web.ssl.template.yml"
##  - "templates/web.letsencrypt.ssl.template.yml"
  - "templates/web.socketed.template.yml"
## ¿Qué puertos TCP/IP debe exponer este contenedor?
## Si deseas que Discourse comparta un puerto con otro servidor web como Apache o nginx,
## consulta https://meta.discourse.org/t/17247 para más detalles
#expose:
# - "2045:80"   # http
# - "1443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Establece db_shared_buffers a un máximo del 25% de la memoria total.
  ## se establecerá automáticamente por bootstrap según la RAM detectada, o puedes sobrescribirlo
  db_shared_buffers: "1024MB"

  ## puede mejorar el rendimiento de ordenamiento, pero aumenta el uso de memoria por conexión
  #db_work_mem: "40MB"

  ## ¿Qué revisión de Git debe usar este contenedor? (predeterminado: tests-passed)
  #version: tests-passed

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

  ## ¿Cuántas solicitudes web concurrentes se admiten? Depende de la memoria y los núcleos de CPU.
  ## se establecerá automáticamente por bootstrap según los CPUs detectados, o puedes sobrescribirlo
  UNICORN_WORKERS: 4

  ## TODO: El nombre de dominio al que responderá esta instancia de Discourse
  ## Obligatorio. Discourse no funcionará con una dirección IP desnuda.
  DISCOURSE_HOSTNAME: cp2077.eu

  ## Descomenta si deseas que el contenedor se inicie con el mismo
  ## nombre de host (opción -h) especificado anteriormente (predeterminado "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Lista de correos electrónicos separados por comas que serán administradores y desarrolladores
  ## en el registro inicial, ejemplo 'usuario1@ejemplo.com,usuario2@ejemplo.com'
  DISCOURSE_DEVELOPER_EMAILS: 'myemail@yandex.com'

  ## TODO: El servidor de correo SMTP utilizado para validar nuevas cuentas y enviar notificaciones
  # DIRECCIÓN SMTP, nombre de usuario y contraseña son obligatorios
  # ADVERTENCIA: el carácter '#' en la contraseña SMTP puede causar problemas
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: ******
  DISCOURSE_SMTP_PASSWORD: ******
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, predeterminado true)

  ## Si agregaste la plantilla de Lets Encrypt, descomenta abajo para obtener un certificado SSL gratuito
  LETSENCRYPT_ACCOUNT_EMAIL: myemail@yandex.com

  ## La dirección CDN http o https para esta instancia de Discourse (configurada para extraer)
  ## consulta https://meta.discourse.org/t/14857 para más detalles
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

## El contenedor Docker es sin estado; todos los datos se almacenan en /shared
volumes:
  - volume:
 host: /var/discourse/shared/standalone
  guest: /shared
  - volume:
  host: /var/discourse/shared/standalone/log/var-log
  guest: /var/log

## Los plugins van aquí
## consulta https://meta.discourse.org/t/19157 para más detalles
hooks:
  after_code:
- exec:
    cd: $home/plugins
    cmd:
      - git clone https://github.com/discourse/docker_manager.git

## Cualquier comando personalizado para ejecutar después de la compilación
run:
  - exec: echo "Inicio de comandos personalizados"
  ## Si deseas establecer la dirección de correo electrónico 'De' para tu primer registro, descomenta y cambia:
  ## Después de recibir el primer correo electrónico de registro, vuelve a comentar la línea. Solo necesita ejecutarse una vez.
  ## - exec: rails r "SiteSetting.notification_email='beatlicious@yandex.com'"
  - exec: echo "Fin de comandos personalizados"

Cuando ejecuto el comando ./launcher rebuild app, obtengo el siguiente error:

fatal: not a git repository (or any of the parent directories): .git
Stopping old container
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Already up to date.
I, [2020-07-11T01:41:07.468750 #1]  INFO -- : Loading --stdin
I, [2020-07-11T01:41:07.482322 #1]  INFO -- : 
I, [2020-07-11T01:41:07.482322 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2020-07-11T01:41:07.556578 #1]  INFO -- : Generando locales (esto puede tardar un poco)...
Generación completada.

I, [2020-07-11T01:41:07.557419 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2020-07-11T01:41:07.562170 #1]  INFO -- : 
I, [2020-07-11T01:41:07.562833 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2020-07-11T01:41:07.568449 #1]  INFO -- : 
I, [2020-07-11T01:41:07.569223 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2020-07-11T01:41:07.576449 #1]  INFO -- : 
I, [2020-07-11T01:41:07.577398 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2020-07-11T01:41:07.582904 #1]  INFO -- : 
I, [2020-07-11T01:41:07.583623 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-07-11T01:41:07.592257 #1]  INFO -- : 
I, [2020-07-11T01:41:07.593134 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres ya se está ejecutando, detén el contenedor ; exit 1
2020/07/11 01:41:07 socat[27] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No such file or directory
I, [2020-07-11T01:41:07.602436 #1]  INFO -- : 
I, [2020-07-11T01:41:07.602977 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2020-07-11T01:41:07.608907 #1]  INFO -- : 
I, [2020-07-11T01:41:07.609638 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2020-07-11T01:41:07.619803 #1]  INFO -- : 
I, [2020-07-11T01:41:07.622598 #1]  INFO -- : > mkdir -p /shared/postgres_run/10-main.pg_stat_tmp
I, [2020-07-11T01:41:07.629638 #1]  INFO -- : 
I, [2020-07-11T01:41:07.630522 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/10-main.pg_stat_tmp
I, [2020-07-11T01:41:07.639523 #1]  INFO -- : 
I, [2020-07-11T01:41:07.651076 #1]  INFO -- : Archivo > /etc/service/postgres/run  chmod: +x  chown:
I, [2020-07-11T01:41:07.660620 #1]  INFO -- : Archivo > /etc/service/postgres/log/run  chmod: +x  chown:
I, [2020-07-11T01:41:07.668238 #1]  INFO -- : Archivo > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2020-07-11T01:41:07.679949 #1]  INFO -- : Archivo > /root/upgrade_postgres  chmod: +x  chown:
I, [2020-07-11T01:41:07.680746 #1]  INFO -- : > chown -R root /var/lib/postgresql/10/main
chown: no se puede acceder a '/var/lib/postgresql/10/main': No such file or directory
I, [2020-07-11T01:41:07.685326 #1]  INFO -- : 


FALLIDO
--------------------
Pups::ExecError: chown -R root /var/lib/postgresql/10/main falló con el retorno #<Process::Status: pid 42 exit 1>
Ubicación del fallo: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec falló con los parámetros {"cmd"=>["chown -R root /var/lib/postgresql/10/main", "[ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/10/bin/initdb -D /shared/postgres_data || exit 0", "chown -R postgres:postgres /shared/postgres_data", "chown -R postgres:postgres /var/run/postgresql"]}
d639e83f5451b5039efb2333f3eca1166d34ff6dc582ee29a0734a4274080fa2
** FALLO AL INICIAR ** por favor, desplázate hacia arriba y busca mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.
atlas@sknet:~/www/cp2077$

¿Alguien puede aconsejarme cómo instalar y configurar Discourse? Seguí la guía y estoy atascado aquí. Gracias.

1 me gusta

You followed Discourse official Standard Installation?

I don’t see how that site could be from the app.yml you include.

I’d create a new droplet and follow the directions again.

1 me gusta

I followed the guide yes, as you noticed I said after executing the command I am getting errors. What do you mean you don’t see how the site could be from the app.yml? its the same host domain name. Can you elaborate on that?

This means You have DNS issues. Your domain is pointing to some other IP.

Could you confirm this is the correct IP?

2 Me gusta

That’s the IP of my website yeah. I checked my DNS, everything is set correctly otherwise you wouldn’t see that the website is live.

If you ping my website, you will see the same IP address.

1 me gusta

There might be some issue with your nginx (or other) conf ? :roll_eyes:

did it work before? with the port exposed?

3 Me gusta

A continuación, mi configuración de nginx:

server {

    listen 80;
    listen [::]:80;
    server_name www.cp2077.eu;
    return 301 https://cp2077.eu$request_uri;
}

server {

    listen 443 ssl;
    listen [::]:443 ssl;
    server_name www.cp2077.eu;
    ssl_certificate /etc/letsencrypt/live/cp2077.eu/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/cp2077.eu/privkey.pem;
    return 301 https://cp2077.eu$request_uri;
}

server {

    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name cp2077.eu;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/cp2077.eu/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/cp2077.eu/privkey.pem;

    include /etc/nginx/snippets/ssl.conf;

    http2_idle_timeout 5m; # aumentado desde el valor predeterminado de 3m

    location / {
        proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;

    }


}

Para ser honesto, no tengo idea de qué más podría estar mal. El sitio web está activo y funcionando, y está conectado al puerto 443.

No importa qué cambie, en cuanto ejecuto el comando ./launcher rebuild app, también lanza un error

$  ./launcher rebuild app
fatal: no es un repositorio git (ni ninguno de los directorios padres): .git
Deteniendo el contenedor antiguo
+ /usr/bin/docker stop -t 60 app
app
(<desconocido>): no se encontró la clave esperada mientras se analizaba una asignación de bloque en la línea 10 columna 1 -e LANG=en_US.UTF-8
Error de sintaxis YAML. Por favor, verifica tus archivos de configuración containers/*.yml.
$ ./launcher rebuild app
fatal: no es un repositorio de git (o ninguno de los directorios padres): .git
Deteniendo el contenedor antiguo
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Ya está actualizado.
I, [2020-07-11T17:12:58.113241 #1]  INFO -- : Cargando --stdin
I, [2020-07-11T17:12:58.134955 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2020-07-11T17:12:58.173307 #1]  INFO -- : Generando locales (esto puede tardar un rato)...
Generación completada.

I, [2020-07-11T17:12:58.174132 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2020-07-11T17:12:58.178306 #1]  INFO -- :
I, [2020-07-11T17:12:58.178561 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2020-07-11T17:12:58.181917 #1]  INFO -- :
I, [2020-07-11T17:12:58.182391 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2020-07-11T17:12:58.185755 #1]  INFO -- :
I, [2020-07-11T17:12:58.186224 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2020-07-11T17:12:58.189632 #1]  INFO -- :
I, [2020-07-11T17:12:58.190021 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-07-11T17:12:58.192947 #1]  INFO -- :
I, [2020-07-11T17:12:58.193285 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres ya se está ejecutando, detén el contenedor ; exit 1
2020/07/11 17:12:58 socat[27] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No existe el archivo o el directorio
I, [2020-07-11T17:12:58.199237 #1]  INFO -- :
I, [2020-07-11T17:12:58.199649 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2020-07-11T17:12:58.203817 #1]  INFO -- :
I, [2020-07-11T17:12:58.204106 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2020-07-11T17:12:58.208244 #1]  INFO -- :
I, [2020-07-11T17:12:58.208674 #1]  INFO -- : > mkdir -p /shared/postgres_run/10-main.pg_stat_tmp
I, [2020-07-11T17:12:58.213559 #1]  INFO -- :
I, [2020-07-11T17:12:58.215200 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/10-main.pg_stat_tmp
I, [2020-07-11T17:12:58.220491 #1]  INFO -- :
I, [2020-07-11T17:12:58.228222 #1]  INFO -- : Archivo > /etc/service/postgres/run  chmod: +x  chown:
I, [2020-07-11T17:12:58.234341 #1]  INFO -- : Archivo > /etc/service/postgres/log/run  chmod: +x  chown:
I, [2020-07-11T17:12:58.240097 #1]  INFO -- : Archivo > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2020-07-11T17:12:58.245972 #1]  INFO -- : Archivo > /root/upgrade_postgres  chmod: +x  chown:
I, [2020-07-11T17:12:58.246504 #1]  INFO -- : > chown -R root /var/lib/postgresql/10/main
chown: no se puede acceder a '/var/lib/postgresql/10/main': No existe el archivo o el directorio
I, [2020-07-11T17:12:58.249988 #1]  INFO -- :


FALLÓ
--------------------
Pups::ExecError: chown -R root /var/lib/postgresql/10/main falló con retorno #<Process::Status: pid 42 salida 1>
Ubicación del fallo: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec falló con los parámetros {"cmd"=>["chown -R root /var/lib/postgresql/10/main", "[ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/10/bin/initdb -D /shared/postgres_data || exit 0", "chown -R postgres:postgres /shared/postgres_data", "chown -R postgres:postgres /var/run/postgresql"]}
cf48a849a885246d6bf9b1b444e679ff6c71dd2fa3b298d42fa2cc67694fc9b5
** NO SE LOGRÓ INICIALIZAR ** por favor, desplázate hacia arriba y busca mensajes de error anteriores; puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.

Tienes un error de formato en tu archivo yml.

2 Me gusta

Ya pegué aquí el archivo yml, no veo ningún error de formato allí, ¿tú sí?

Sí, la sangría es incorrecta ahí.

5 Me gusta

El archivo app.yml proviene de las plantillas y nunca he tocado las líneas que me sugieres, así que no entiendo cómo podría estar mal si eso es lo que se ha aprovisionado por parte de ustedes.

De todos modos, tienes los siguientes pasos a seguir, así que te sugiero que los sigas :wink:

3 Me gusta

Creo que el error que muestra la configuración de Discourse es real debido al proxy inverso.

Veo que ya has realizado cambios en el app.yml, ¿por qué no ejecutas simplemente ./launcher rebuild app?

Lo he pegado aquí muchas veces, pero lo haré de nuevo. Esto es lo que obtengo al ejecutar ese comando:

$ ./launcher rebuild app
fatal: no es un repositorio git (ni ninguno de los directorios padres): .git
Deteniendo el contenedor anterior
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && /pups/bin/pups --stdin
Ya está actualizado.
I, [2020-07-11T17:12:58.113241 #1]  INFO -- : Cargando --stdin
I, [2020-07-11T17:12:58.134955 #1]  INFO -- : > locale-gen $LANG && update-locale
I, [2020-07-11T17:12:58.173307 #1]  INFO -- : Generando locales (esto puede tardar un poco)...
Generación completada.

I, [2020-07-11T17:12:58.174132 #1]  INFO -- : > mkdir -p /shared/postgres_run
I, [2020-07-11T17:12:58.178306 #1]  INFO -- :
I, [2020-07-11T17:12:58.178561 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2020-07-11T17:12:58.181917 #1]  INFO -- :
I, [2020-07-11T17:12:58.182391 #1]  INFO -- : > chmod 775 /shared/postgres_run
I, [2020-07-11T17:12:58.185755 #1]  INFO -- :
I, [2020-07-11T17:12:58.186224 #1]  INFO -- : > rm -fr /var/run/postgresql
I, [2020-07-11T17:12:58.189632 #1]  INFO -- :
I, [2020-07-11T17:12:58.190021 #1]  INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-07-11T17:12:58.192947 #1]  INFO -- :
I, [2020-07-11T17:12:58.193285 #1]  INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres ya se está ejecutando, detén el contenedor ; exit 1
2020/07/11 17:12:58 socat[27] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): No existe el archivo o el directorio
I, [2020-07-11T17:12:58.199237 #1]  INFO -- :
I, [2020-07-11T17:12:58.199649 #1]  INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2020-07-11T17:12:58.203817 #1]  INFO -- :
I, [2020-07-11T17:12:58.204106 #1]  INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2020-07-11T17:12:58.208244 #1]  INFO -- :
I, [2020-07-11T17:12:58.208674 #1]  INFO -- : > mkdir -p /shared/postgres_run/10-main.pg_stat_tmp
I, [2020-07-11T17:12:58.213559 #1]  INFO -- :
I, [2020-07-11T17:12:58.215200 #1]  INFO -- : > chown postgres:postgres /shared/postgres_run/10-main.pg_stat_tmp
I, [2020-07-11T17:12:58.220491 #1]  INFO -- :
I, [2020-07-11T17:12:58.228222 #1]  INFO -- : Archivo > /etc/service/postgres/run  chmod: +x  chown:
I, [2020-07-11T17:12:58.234341 #1]  INFO -- : Archivo > /etc/service/postgres/log/run  chmod: +x  chown:
I, [2020-07-11T17:12:58.240097 #1]  INFO -- : Archivo > /etc/runit/3.d/99-postgres  chmod: +x  chown:
I, [2020-07-11T17:12:58.245972 #1]  INFO -- : Archivo > /root/upgrade_postgres  chmod: +x  chown:
I, [2020-07-11T17:12:58.246504 #1]  INFO -- : > chown -R root /var/lib/postgresql/10/main
chown: no se puede acceder a '/var/lib/postgresql/10/main': No existe el archivo o el directorio
I, [2020-07-11T17:12:58.249988 #1]  INFO -- :


FALLO
--------------------
Pups::ExecError: chown -R root /var/lib/postgresql/10/main falló con el retorno #<Process::Status: pid 42 exit 1>
Ubicación del fallo: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec falló con los parámetros {"cmd"=>["chown -R root /var/lib/postgresql/10/main", "[ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/10/bin/initdb -D /shared/postgres_data || exit 0", "chown -R postgres:postgres /shared/postgres_data", "chown -R postgres:postgres /var/run/postgresql"]}
cf48a849a885246d6bf9b1b444e679ff6c71dd2fa3b298d42fa2cc67694fc9b5
** FALLO AL INICIALIZAR ** por favor, desplázate hacia arriba y busca mensajes de error anteriores; puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.

¿Por qué estás usando un proxy para tu sitio de Discourse en lugar de utilizar un subdominio?

No estoy seguro de entender. Quiero que mi foro de Discourse esté en mi dominio principal, no como un subdominio.

Si esta es tu primera instalación, deberías configurarla y ponerla en marcha siguiendo la guía oficial antes de modificar la configuración. Está bien documentado en otro lugar de meta que el uso de subcarpetas no ofrece ventajas; se considera un tema avanzado que puede fallar en cualquier momento con las actualizaciones.

1 me gusta

No, esta no es mi primera instalación. De hecho, es mi segunda instalación en otro dominio. Hace unos meses instalé Discourse en otro dominio siguiendo la misma guía. Hoy la estoy repitiendo y me he quedado atascado con los problemas mencionados anteriormente. No hice nada especial; estaba siguiendo la guía tal como estaba antes.