Nach dem Upgrade ist docker: local_discourse/app keine gültige MAC-Adresse

Nach einem Upgrade durch:

git pull
./launcher rebuild app

startet der Dienst nicht einmal mit ./launcher start app.

Ich erhalte eine Fehlermeldung bezüglich der mac-Adresse, und auf der Befehlszeile ist keine mac-Adresse vorhanden:

#  ./launcher start app
x86_64 arch detected.

+ /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 ist keine gültige mac-Adresse.
Siehe 'docker run --help'.

Wie kann ich das beheben?

1 „Gefällt mir“

Wie lautet der Hostname Ihres Hosts?

Der Hostname ist myhost.

1 „Gefällt mir“

Seltsam, dieser Hostname sollte eine MAC von 02:e0:04:92:ec:9a haben.

Sie können trotzdem ./launcher start app --skip-mac-address verwenden, um ihn zu überspringen, wenn Sie ihn nicht weiter debuggen möchten.

2 „Gefällt mir“

Ich weiß nicht, warum keine MAC-Adresse hinzugefügt wird.

Ich habe ausgeführt: ./launcher start app --skip-mac-address

Kein Fehler, aber es scheint, dass keine Ports aufgelistet sind, sodass die Anwendung nicht zugänglich ist:

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

Können Sie Ihre app.yml-Datei teilen (ohne persönliche Daten/Passwörter)?

1 „Gefällt mir“

Gerne, ich habe den Inhalt von containers/app.yml unten kopiert, nachdem einige vertrauliche Informationen durch xxxxx ersetzt wurden.

## Dies ist die All-in-One, eigenständige Discourse Docker Container-Vorlage
##
## Nach Änderungen an dieser Datei MÜSSEN Sie neu erstellen
## /var/discourse/launcher rebuild app
##
## SEIEN SIE *SEHR* VORSICHTIG BEIM BEARBEITEN!
## YAML-DATEIEN SIND SEHR, SEHR EMPFINDLICH GEGENÜBER FEHLERN BEI LEERZEICHEN ODER AUSRICHTUNG!
## besuchen Sie http://www.yamllint.com/, um diese Datei nach Bedarf zu validieren

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Kommentieren Sie diese beiden Zeilen aus, wenn Sie Lets Encrypt (https) hinzufügen möchten
  #- "templates/web.ssl.template.yml"
  #- "templates/web.letsencrypt.ssl.template.yml"

## Welche TCP/IP-Ports soll dieser Container bereitstellen?
## Wenn Sie möchten, dass Discourse einen Port mit einem anderen Webserver wie Apache oder nginx teilt,
## siehe https://meta.discourse.org/t/17247 für Details
expose:
  - "127.0.0.1:8009:80"   # http
#  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Setzen Sie db_shared_buffers auf maximal 25% des Gesamtspeichers.
  ## wird automatisch von bootstrap basierend auf dem erkannten RAM gesetzt, oder Sie können überschreiben
  db_shared_buffers: "4096MB"

  ## kann die Sortierleistung verbessern, erhöht aber den Speicherverbrauch pro Verbindung
  #db_work_mem: "40MB"

  ## Welche Git-Revision soll dieser Container verwenden? (Standard: tests-passed)
  #version: tests-passed

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

  ## Wie viele gleichzeitige Webanfragen werden unterstützt? Hängt von Speicher und CPU-Kernen ab.
  ## wird automatisch von bootstrap basierend auf den erkannten CPUs gesetzt, oder Sie können überschreiben
  UNICORN_WORKERS: 8

  ## TODO: Der Domainname, auf den diese Discourse-Instanz reagieren wird
  ## Erforderlich. Discourse funktioniert nicht mit einer reinen IP-Nummer.
  DISCOURSE_HOSTNAME: discourse.xxxxxxxxx.xxx

  ## Kommentieren Sie aus, wenn der Container mit demselben
  ## Hostnamen (-h Option) wie oben angegeben gestartet werden soll (Standard "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Liste der per Komma getrennten E-Mails, die bei der erstmaligen Anmeldung zu Administratoren und Entwicklern gemacht werden
  ## Beispiel 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'contact@xxxxxxxxx.xxx'

  ## TODO: Der SMTP-Mailserver, der zum Überprüfen neuer Konten und zum Senden von Benachrichtigungen verwendet wird
  # SMTP-ADRESSE, Benutzername und Passwort sind erforderlich
  # ACHTUNG: Das Zeichen '#' im SMTP-Passwort kann Probleme verursachen!
  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           # (optional, Standard true)

  ## Wenn Sie die Lets Encrypt-Vorlage hinzugefügt haben, kommentieren Sie unten aus, um ein kostenloses SSL-Zertifikat zu erhalten
  #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## Die HTTP- oder HTTPS-CDN-Adresse für diese Discourse-Instanz (konfiguriert zum Abrufen)
  ## siehe https://meta.discourse.org/t/14857 für Details
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

## Der Docker-Container ist zustandslos; alle Daten werden in /shared gespeichert
volumes:
  - volume:
      host: /data/hosting/data-discourse
      guest: /shared
  - volume:
      host: /data/hosting/data-discourse/log/var-log
      guest: /var/log

## Plugins hier
## siehe https://meta.discourse.org/t/19157 für Details
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## Alle benutzerdefinierten Befehle, die nach dem Erstellen ausgeführt werden sollen
run:
  - exec: echo "Beginn der benutzerdefinierten Befehle"
  ## Wenn Sie die 'Von'-E-Mail-Adresse für Ihre erste Registrierung festlegen möchten, kommentieren Sie die Zeile aus und ändern Sie sie:
  ## Nach Erhalt der ersten Registrierungs-E-Mail kommentieren Sie die Zeile wieder aus. Sie muss nur einmal ausgeführt werden.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Ende der benutzerdefinierten Befehle"
1 „Gefällt mir“

Können Sie versuchen, das zu ändern in:

expose:
  - "8009:80"   # http

Führen Sie einen zusätzlichen Reverse-Proxy auf dem Host aus? In diesem Fall möchten Sie möglicherweise auf einen Unix-Socket lauschen, indem Sie eine web.socketed.template.yml in die Liste der Vorlagen oben einfügen.

1 „Gefällt mir“

Ich habe den Expose geändert und neu erstellt, aber das Problem besteht weiterhin.

Ich betreibe Haproxy als Reverse-Proxy, um HTTPS-Verbindungen zu Discourse zu handhaben. Dies funktioniert seit über 2 Jahren mit mehreren Upgrades ohne Probleme.

1 „Gefällt mir“