Mentre tento di aggiornare Discourse tramite ./launcher rebuild app riscontro un problema con
fatal: unable to access 'https://github.com/discourse/REPO.git/': Failed to connect to github.com port 443: Connection timed out
Tuttavia, il problema è: a volte questo fallisce anche per discourse. Ma se si tenta di farlo di nuovo, subito dopo, senza modifiche, potrebbe funzionare, ma fallire su uno dei plugin. Se rimuovo tutti i plugin, la connessione discourse potrebbe fallire o potrebbe funzionare e costruire effettivamente l’intera cosa.
Ho visto questo
ma non so come eseguire il debug della rete del container.
Non hai esattamente il problema descritto nel thread che hai collegato, e infatti sembri avere un problema intermittente, che è sempre il più difficile da diagnosticare. Ma forse potresti provare un recupero manuale. Ho provato questo, che è innocuo:
# cd /var/discourse/
# ./launcher enter app
x86_64 arch detected.
# 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
#
Vediamo che “github.com” è stato tradotto in un indirizzo IP ragionevole, è stato contattato e ha restituito alcuni dati. Infatti il comando eseguito all’interno del container si è comportato in modo molto simile a come si comporta al di fuori del container, e questo è prevedibile.
Stai usando una ricetta di installazione supportata, su un provider di hosting noto?
OK, quindi sta almeno tentando di contattare un indirizzo IP ragionevole. Sospetterei qualcosa di sbagliato nel routing, o nel firewall, o qualcosa di sbagliato a livello dell’azienda di hosting.
Se riesegui il test al di fuori del container, vedrai se hai un problema specifico del container o un problema più generale di Linux.
È specifico del container. Sto lottando per capire cosa potrebbe aver causato questo, dato che non ho modificato il container prima e il sito ha circa 1,5 anni.
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.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"
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 # (optional, default true)
DISCOURSE_SMTP_DOMAIN: domain.com
DISCOURSE_NOTIFICATION_EMAIL: email@email.com
## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
LETSENCRYPT_ACCOUNT_EMAIL: email@email.com
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
#DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
## The Docker container is stateless; all data is stored in /shared
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/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/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
## Any custom commands to run after building
run:
- exec: echo "Beginning of custom commands"
- exec: echo "End of custom commands"
Nota: Ho provato a creare l’app senza plugin. O non riesce a recuperare discourse stesso o non riesce a clonare il 3° o 4° plugin nell’elenco (il che significa che con solo 2-3 plugin posso creare un’app dal 3°-4° tentativo).
Era 2.9.0.beta14 appena prima che provassi ad aggiornare a 3.0.0.beta15, non ricordo l’ID specifico ma l’ultima volta che è stato aggiornato è stato intorno al 25-26 dicembre.
Non è che stessi cercando di limitare le informazioni disponibili, è più una questione se il nome ti dirà qualcosa dato che non è un’azienda occidentale. L’istanza era ospitata da reg.ru, il più grande hoster in Russia. Comunque, il loro supporto questa volta[1] non è stato d’aiuto, quindi ho spostato il mio sito su digital ocean. Con le stesse impostazioni, la stessa procedura utilizzata per l’installazione di docker, tutto ha funzionato (e sembra funzionare) bene.