Dopo l'aggiornamento, docker: local_discourse/app non è un indirizzo mac valido

Dopo un aggiornamento tramite:

git pull
./launcher rebuild app

Il servizio non si avvia nemmeno con ./launcher start app.

Ricevo un errore relativo all’indirizzo MAC e non c’è alcun indirizzo MAC sulla riga di comando:

#  ./launcher start app
x86_64 arch rilevato.

+ /data/docker-discourse/docker run --shm-size=512m -d --restart=always -h myhost-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t --mac-address local_discourse/app /sbin/boot
docker: local_discourse/app non è un indirizzo MAC valido.
Vedi 'docker run --help'.

Come posso risolvere?

1 Mi Piace

Qual è l’hostname del tuo host?

Il nome host è myhost.

1 Mi Piace

Strano, quell’hostname dovrebbe impostare un MAC di 02:e0:04:92:ec:9a.

Comunque, puoi usare ./launcher start app --skip-mac-address per saltarlo se non vuoi analizzarlo ulteriormente.

2 Mi Piace

Non so perché un MAC non venga aggiunto.

Ho eseguito ./launcher start app --skip-mac-address

Nessun errore, ma sembra che nessuna porta sia elencata, quindi l’applicazione non è accessibile:

CONTAINER ID   IMAGE                            COMMAND                  CREATED          STATUS          PORTS                                                                                                                                                          NAMES
7f269e451af9   local_discourse/app              \"/sbin/boot\"             28 seconds ago   Up 28 seconds                                                                                                                                                                  app

Puoi condividere il tuo file app.yml (esclusi dati personali/password)?

1 Mi Piace

Certamente, ho copiato di seguito il contenuto di containers/app.yml dopo aver sostituito alcune informazioni riservate con xxxxx.

## questo è il template del container Docker Discourse all-in-one, standalone
##
## Dopo aver apportato modifiche a questo file, DEVI ricostruire
## /var/discourse/launcher rebuild app
##
## FAI MOLTA ATTENZIONE QUANDO MODIFICHI!
## I FILE YAML SONO ESTREMAMENTE SENSIBILI A ERRORI DI SPAZIATURA O ALLINEAMENTO!
## visita http://www.yamllint.com/ per convalidare questo file secondo necessità

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Decommenta queste due righe se desideri aggiungere Lets Encrypt (https)
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## quali porte TCP/IP deve esporre questo container?
## Se desideri che Discourse condivida una porta con un altro webserver come Apache o nginx,
## vedi https://meta.discourse.org/t/17247 per i dettagli
expose:
  - "127.0.0.1:8009:80"   # http
#  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Imposta db_shared_buffers al massimo del 25% della memoria totale.
  ## verrà impostato automaticamente da bootstrap in base alla RAM rilevata, o puoi sovrascriverlo
  db_shared_buffers: "4096MB"

  ## può migliorare le prestazioni di ordinamento, ma aumenta l'utilizzo della memoria per connessione
  #db_work_mem: "40MB"

  ## Quale revisione Git deve utilizzare questo container? (default: tests-passed)
  #version: tests-passed

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

  ## Quante richieste web concorrenti sono supportate? Dipende da memoria e core CPU.
  ## verrà impostato automaticamente da bootstrap in base alle CPU rilevate, o puoi sovrascriverlo
  UNICORN_WORKERS: 8

  ## TODO: Il nome del dominio a cui risponderà questa istanza Discourse
  ## Obbligatorio. Discourse non funzionerà con un semplice numero IP.
  DISCOURSE_HOSTNAME: discourse.xxxxxxxxx.xxx

  ## Decommenta se desideri che il container venga avviato con lo stesso
  ## hostname (-h option) specificato sopra (default "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Elenco di email separate da virgola che diventeranno amministratori e sviluppatori
  ## alla prima registrazione esempio 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'contact@xxxxxxxxx.xxx'

  ## TODO: Il server di posta SMTP utilizzato per convalidare nuovi account e inviare notifiche
  # L'INDIRIZZO SMTP, il nome utente e la password sono obbligatori
  # ATTENZIONE il carattere '#' nella password SMTP può causare problemi!
  DISCOURSE_SMTP_ADDRESS: mail.xxxxxxxxx.xxx
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: contact@xxxxxxxxx.xxx
  DISCOURSE_SMTP_PASSWORD: "xxxxxxxxxxxx"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opzionale, default true)

  ## Se hai aggiunto il template Lets Encrypt, decommenta sotto per ottenere un certificato SSL gratuito
  #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## L'indirizzo CDN http o https per questa istanza Discourse (configurato per il pull)
  ## vedi https://meta.discourse.org/t/14857 per i dettagli
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

## Il container Docker è stateless; tutti i dati sono memorizzati in /shared
volumes:
  - volume:
      host: /data/hosting/data-discourse
      guest: /shared
  - volume:
      host: /data/hosting/data-discourse/log/var-log
      guest: /var/log

## I plugin vanno qui
## vedi https://meta.discourse.org/t/19157 per i dettagli
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## Qualsiasi comando personalizzato da eseguire dopo la build
run:
  - exec: echo "Inizio comandi personalizzati"
  ## Se desideri impostare l'indirizzo email 'Da' per la tua prima registrazione, decommenta e modifica:
  ## Dopo aver ricevuto la prima email di registrazione, ri-commenta la riga. Deve essere eseguita solo una volta.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fine comandi personalizzati"
1 Mi Piace

Puoi provare a cambiarlo in:

exposes:
  - "8009:80"   # http

Stai eseguendo un proxy inverso aggiuntivo sull’host? In tal caso, potresti preferire l’ascolto su un socket Unix aggiungendo un web.socketed.template.yml nell’elenco dei template in alto.

1 Mi Piace

Ho modificato l’expose e ricostruito ma il problema è ancora lo stesso.

Sto eseguendo Haproxy come proxy inverso per gestire la connessione HTTPS a Discourse. È in esecuzione così com’è da più di 2 anni con già diversi aggiornamenti.

1 Mi Piace