Mientras intento actualizar Discourse con ./launcher rebuild app, me encuentro con un problema:
fatal: unable to access 'https://github.com/discourse/REPO.git/': Failed to connect to github.com port 443: Connection timed out
Sin embargo, el problema es: a veces esto falla incluso para discourse. Pero si intentas hacerlo de nuevo, inmediatamente después, sin cambios, puede que funcione, pero falle en uno de los plugins. Si elimino todos los plugins, la conexión de discourse puede fallar o puede funcionar y construir todo.
No tienes exactamente el problema descrito en el hilo que enlazaste, y de hecho parece que tienes un problema intermitente, que es siempre el más difícil de diagnosticar. Pero quizás podrías intentar una descarga manual. Yo probé esto, que es inofensivo:
# cd /var/discourse/
# ./launcher enter app
Se detectó la arquitectura x86_64.
# wget -O - -v https://github.com/discourse/logster.git/ |wc
--2023-01-04 15:30:25-- https://github.com/discourse/logster.git/
Resolving github.com (github.com)... 140.82.121.4
Connecting to github.com (github.com)|140.82.121.4|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://github.com/discourse/logster/ [following]
--2023-01-04 15:30:25-- https://github.com/discourse/logster/
Reusing existing connection to github.com:443.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘STDOUT’
- [ <=> ] 231.22K --.-KB/s in 0.06s
2023-01-04 15:30:26 (3.99 MB/s) - written to stdout [236767]
2751 15860 236767
#
Vemos que “github.com” se tradujo a una dirección IP razonable, se contactó y devolvió algunos datos. De hecho, el comando ejecutado dentro del contenedor se comportó de manera muy similar a como lo hace fuera del contenedor, y eso es lo esperado.
¿Estás utilizando una receta de instalación compatible, en una empresa de hosting conocida?
OK, así que al menos está intentando contactar una dirección IP razonable. Sospecharía que algo está mal con el enrutamiento, o el firewall, o algo está mal a nivel de la empresa de alojamiento.
Si vuelves a ejecutar la prueba fuera del contenedor, verás si tienes un problema específico del contenedor o un problema más general de Linux.
Es uno específico del contenedor. Me cuesta entender qué pudo haber causado esto, ya que no he modificado el contenedor antes y el sitio tiene aproximadamente 1,5 años.
[quote=“Ed S, post:6, topic:250643, username:Ed_S”]¿puedes ejecutar esa prueba de forma fiable?
[/quote]
sí
[quote=“Ed S, post:6, topic:250643, username:Ed_S”]¿podrías compartir una versión saneada de tu app.yml?
[/quote]
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Descomenta estas dos líneas si deseas añadir Lets Encrypt (https)
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
expose:
- "80:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
db_shared_buffers: "128MB"
#db_work_mem: "40MB"
#version: tests-passed
env:
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
LANGUAGE: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
UNICORN_WORKERS: 2
DISCOURSE_HOSTNAME: domain.example.com
#DOCKER_USE_HOSTNAME: true
DISCOURSE_DEVELOPER_EMAILS: 'some@emails.com'
DISCOURSE_SMTP_ADDRESS: smtp.domain.com
DISCOURSE_SMTP_PORT: port
DISCOURSE_SMTP_USER_NAME: email@email.com
DISCOURSE_SMTP_PASSWORD: "password"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (opcional, por defecto true)
DISCOURSE_SMTP_DOMAIN: domain.com
DISCOURSE_NOTIFICATION_EMAIL: email@email.com
## Si añadiste la plantilla Lets Encrypt, descomenta abajo para obtener un certificado SSL gratuito
LETSENCRYPT_ACCOUNT_EMAIL: email@email.com
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
#DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
## El contenedor Docker no tiene 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í
## ver https://meta.discourse.org/t/19157 para detalles
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/discourse-math.git
- git clone https://github.com/discourse/discourse-reactions.git
- git clone https://github.com/discourse/discourse-solved.git
- git clone https://github.com/discourse/discourse-spoiler-alert.git
- git clone https://github.com/discourse/discourse-whos-online.git
- git clone https://github.com/discourse/discourse-assign.git
- git clone https://github.com/discourse/discourse-cakeday.git
- git clone https://github.com/discourse/discourse-akismet.git
- git clone https://github.com/discourse/discourse-data-explorer.git
- git clone https://github.com/discourse/discourse-gamification
- git clone https://github.com/discourse/discourse-checklist
- git clone https://github.com/discourse/discourse-footnote
- git clone https://github.com/discourse/discourse-yearly-review
- git clone https://github.com/discourse/discourse-encrypt.git
## Cualquier comando personalizado para ejecutar después de la compilación
run:
- exec: echo "Beginning of custom commands"
- exec: echo "End of custom commands"
Nota: He intentado compilar la aplicación sin ningún plugin. O falla al obtener discourse en sí o falla al clonar el 3er o 4º plugin de la lista (lo que significa que con solo 2-3 plugins puedo compilar una aplicación en el 3er-4º intento).
[quote=“Ed S, post:6, topic:250643, username:Ed_S”]¿Qué antigüedad tiene la instalación actual? ¿qué versión y qué ID tiene?
[/quote]
Era 2.9.0.beta14 justo antes de intentar actualizar a 3.0.0.beta15, no recuerdo el ID específico, pero la última vez que se actualizó fue alrededor del 25-26 de diciembre.
Definitivamente ayudaría que fueras menos vago con respecto al proveedor que estás utilizando. Varían enormemente en términos de la complejidad de sus redes.
Es probable que lleve mucho más tiempo solucionar esto a ciegas.
No es que estuviera tratando de limitar la información disponible, se trata más de si el nombre te dirá algo, ya que no es una empresa occidental. La instancia fue alojada por reg.ru, el mayor hoster en Rusia. De todos modos, su soporte esta vez[1] tampoco fue útil, así que trasladé mi sitio a digital ocean. Con la misma configuración, el mismo procedimiento utilizado para la instalación de docker, todo funcionó (y parece funcionar) bien.