# Gladys v4.0.5 erstellen

**URL:** <https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077>\
**Category:** Développement\
**Created:** [1. Februar 2021 um 09:26 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077 "2021-02-01T09:26:44Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [1. Februar 2021 um 09:26 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/1 "2021-02-01T09:26:44Z")

</div>

@VonOx Nur zur Info, ich habe einen Release-Build auf Github gestartet, Gladys v4.0.5 (der erste Build seit Github Action!)

Ich habe in den Repo-Einstellungen geändert, damit das Ergebnis auf ein schreckliches Dockerhub-Repo (pierregilles/gladys-test) gepusht wird, und dann, wenn alles gut geht, ändere ich das Repo in den Secrets zurück und starte den Build erneut, damit es auf das richtige Repo gepusht wird.

Github Action läuft hier:

[https://github.com/GladysAssistant/Gladys/runs/1805214841?check\_suite\_focus=true](https://github.com/GladysAssistant/Gladys/runs/1805214841?check_suite_focus=true)

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [1. Februar 2021 um 09:42 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/2 "2021-02-01T09:42:58Z")

</div>

Ich bin zuversichtlich 😃

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/9/988c098bda0726193b8e38fa315acdcc61e0310a.png)

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [1. Februar 2021 um 09:59 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/3 "2021-02-01T09:59:03Z")

</div>

Na toll, es hat funktioniert, aber es baut nicht mehr wie früher 😛

Hier sind die Tags, die auf Docker Hub erzeugt wurden:

- latest
- v4
- v4.0.5

(siehe [mein Repo](https://hub.docker.com/repository/docker/pierregilles/gladys-test/tags?page=1&ordering=last_updated))

Früher hatten wir:

- latest
- v4
- v4.0.5
- v4-arm
- v4-amd64
- v4-arm32v7
- v4-arm64v8

Diese Tags sind notwendig, da das Raspbian-Image beispielsweise auf dem Tag v4-arm basiert.

Übrigens, die Geschichte mit dem Docker Manifest, bei der Docker die verwendete Plattform „erkennt“, funktioniert nicht so gut (als ich meine Tests gemacht habe, hat es nicht funktioniert).

Bisher haben wir diese Tags immer in der Dokumentation hervorgehoben, und alle laufenden Instanzen basieren darauf!

Ist es kompliziert, diese Tags hinzuzufügen? 🙂

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [1. Februar 2021 um 10:03 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/4 "2021-02-01T10:03:55Z")

</div>

> [@pierre-gilles](#):
>
> Man benötigt diese Tags, da das Raspbian-Image beispielsweise auf dem Tag v4-arm basiert.

Ach das ist ja eine Dummheit

> [@pierre-gilles](#):
>
> Zur Info, die Geschichte mit dem Docker-Manifest, bei dem Docker die verwendete Plattform „erkennt“, funktioniert nicht so gut (als ich meine Tests gemacht habe, hat es nicht funktioniert).

buildx löst dieses Problem.

> [@pierre-gilles](#):
>
> Ist das kompliziert hinzuzufügen?

Das soll vor allem nicht so verwendet werden. Das Tag nach Architektur hat keinen Sinn.  
Darum muss ich mich kümmern.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [1. Februar 2021 um 10:16 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/5 "2021-02-01T10:16:48Z")

</div>

> [@VonOx](#):
>
> Ah das ist ja eine Dummheit

So war das damals, es hat nicht funktioniert, man musste das Bild einfach rausbringen ^^

> [@VonOx](#):
>
> Das soll vor allem nicht so verwendet werden. Der Tag by arch hat keinen Sinn.

Jetzt ja, aber bisher haben alle Projekte so gemacht. Watchtower macht das auch so!

Jetzt ist es zu spät, wir haben etwa 500 Instanzen, die diesen Tag in der Produktion verwenden, kein Zurück mehr möglich, aber wir werden sehen, ob wir für neue Bilder auf das v4-Bild umsteigen, aber wir müssen weiterhin die bestehende Lösung unterstützen.

Auch für ein neues Raspbian-Bild denke ich, dass man vor dem Umstieg auf die automatische Bilderkennung eine ganze Überlegung anstellen muss:

- Funktioniert das mit allen Docker-Versionen? (Was ist mit den Leuten, die Synos haben, die mit einer Docker-Version vor der Version, die die Plattformerkennung unterstützt, blockiert sind?)
- Ist das wirklich so stabil und riskiert es nicht, uns in Zukunft zu blockieren?

Zumindest finde ich die aktuelle Methode für den Endbenutzer viel sicherer

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [1. Februar 2021 um 10:45 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/6 "2021-02-01T10:45:10Z")

</div>

> [@pierre-gilles](#):
>
> So ist es, damals hat es nicht funktioniert, man musste das Bild einfach herausholen ^^

Es gibt keine Vorwürfe, übrigens erinnere ich mich an den Bug mit dem Manifest.

> [@pierre-gilles](#):
>
> Jetzt ja, aber bisher haben alle Projekte so gemacht. Watchtower macht das auch!

> <https://github.com/containrrr/watchtower/blob/main/.github/workflows/release.yml#L82>

Im „manuellen“ Modus 😕

> [@pierre-gilles](#):
>
> Funktioniert das mit allen Docker-Versionen? (Was ist mit den Leuten, die Synos haben, die auf einer Docker-Version vor der Version mit Plattformerkennung stecken geblieben sind?)

Seit 2014 🙂 , man muss die Versionen prüfen, aber ich glaube nicht, dass das ein Problem sein wird

> [@pierre-gilles](#):
>
> Ist es so stabil und riskiert es, uns in Zukunft zu blockieren?

Wer weiß?

Ich kann nur sagen, dass keiner meiner Container spezifische Tags für die Architektur hat

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/9/9df7d36de8bac8d28bbfecdb43ed836b84929317.png)

* * *

Egal, das eigentliche Problem ist woanders

- Entweder machen wir einen etwas schmutzigen Flow mit Skripten (wie wir es mit CircleCI gemacht haben)  
 → Die schnelle Build, Cache etc. vergessen wir
- Oder wir erklären, wie man auf bestehenden RPIs aktualisiert  
 → Nicht ideal für die Nutzer und die Kommunikation dazu

Es gibt keine gute Lösung, jetzt ärgert es 500 Nutzer, in 2 Jahren vielleicht das Doppelte?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [1. Februar 2021 um 11:17 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/7 "2021-02-01T11:17:33Z")

</div>

> [@VonOx](#):
>
> Entweder erklärt man, wie man die bestehenden RPI aktualisiert

Diese Option ist nicht machbar, wir sind nicht mehr in der Beta-Phase, man muss so denken, als wären die 500 Häuser, die Gladys laufen lassen, „eingefroren“ und man müsste sie unterstützen.

Mit der v4 wollen wir ein Bild von Langzeitstabilität vermitteln. Wenn wir ein Image nur zwei Monate nach dessen Veröffentlichung nicht mehr unterstützen, sieht das nicht gut aus ^^ Besonders, wenn es nur ist, um sich nicht zu sehr zu bemühen. Hier gibt es keine technischen Hindernisse.

> [@VonOx](#):
>
> Entweder muss man einen etwas schmutzigen Flow mit Skripten machen (wie wir es mit CircleCI gemacht haben)  
> → Die Fast-Build, Cache usw. können wir vergessen

Können wir nicht eine Mischung aus beidem machen?

buildx + Tagging der Images v4-arm basierend auf dem v4-Manifest arm?

docker tag + docker push in einem separaten Schritt?

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [1. Februar 2021 um 11:21 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/8 "2021-02-01T11:21:09Z")

</div>

> [@pierre-gilles](#):
>
> Kann man nicht eine Mischung aus beidem machen?
> 
> buildx + Tagging der v4-arm-Images basierend auf dem v4-manifest-arm-Image?
> 
> docker tag + docker push in einem separaten Schritt?

Nein, man kann keine spezifische Architektur pullen, daher kann man auch nicht hinterher umtaggen.

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [1. Februar 2021 um 11:30 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/9 "2021-02-01T11:30:39Z")

</div>

Ich habe eine Idee: Wir holen den SHA des Manifests, um einen Pull durchzuführen und dann zu retaggen. 😅

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [1. Februar 2021 um 11:31 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/10 "2021-02-01T11:31:00Z")

</div>

würde das funktionieren? 😛 Wenn es wirklich funktioniert aha

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [1. Februar 2021 um 11:59 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/11 "2021-02-01T11:59:02Z")

</div>

In der Theorie 🥴

`docker manifest inspect pierregilles/gladys-test:latest`

```json
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
   "manifests": [
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 2848,
         "digest": "sha256:51fc90d1e9d0f933953164554e6f05de59aa9df132eb7e258a591226314f7fa4",
         "platform": {
            "architecture": "amd64",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 2848,
         "digest": "sha256:6a8263c315c195cc6b9c773eaabff8b2c90ada263883850d4927520bdac8b2f0",
         "platform": {
            "architecture": "arm",
            "os": "linux",
            "variant": "v6"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 2848,
         "digest": "sha256:a2a55c324de662c01c8ad298c614488ac098e90601312ab402acba517dfbc122",
         "platform": {
            "architecture": "arm",
            "os": "linux",
            "variant": "v7"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 2848,
         "digest": "sha256:2837f9ec94696ee168b5b045eee8027ef3d1c0be4d080730220cade2a6323a43",
         "platform": {
            "architecture": "arm64",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 2848,
         "digest": "sha256:73660db5122e02479efa19e4bdd34d5006a601730c1edeeab525885e3660ff39",
         "platform": {
            "architecture": "s390x",
            "os": "linux"
         }
      }
   ]
}

```

Das Manifest enthält die Info (Pull mit dem Digest), aber man kann trotzdem eine Plattform pullen (ich weiß nicht, ob das neu ist).

docker pull pierregilles/gladys-test:v4 --platform arm (das arm/v7-Image wird gepullt)

![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/c/ca6abd092020af87a6e481b3b76fe05b75224a8b.png)

Ich werde das testen und schnell einen Vorschlag machen, um den Stau zu lösen

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [1. Februar 2021 um 12:32 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/12 "2021-02-01T12:32:16Z")

</div>

> [@VonOx](#):
>
> Ich werde das testen und schnell einen Vorschlag machen, um das zu entsperren

Super! Lass mich wissen, wie es läuft 🙂

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [1. Februar 2021 um 15:40 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/13 "2021-02-01T15:40:28Z")

</div>

```auto
      -
        name: 🐳 Legacy Tags
        run: |
          echo "::set-env name=DIGESTARM::$(docker manifest inspect ${{ env.DOCKERHUB_REPO }}:latest | jq -r '.manifests | to_entries[] | select(.value.platform.architecture == "arm" and .value.platform.variant == "v6").value | .digest')"
          docker pull ${{ env.DOCKERHUB_REPO }}@${{ env.DIGESTARM}}
          docker tag ${{ env.DOCKERHUB_REPO }}@${{ env.DIGESTARM}} ${{ env.DOCKERHUB_REPO }}:v4-arm
          docker push ${{ env.DOCKERHUB_REPO }}:v4-arm

```

Build läuft

Die Logik ist wie folgt:

1- Wenn der globale Build abgeschlossen ist, hole ich den Digest des armv6-Images  
2- Ich pull das Image mit seinem Digest  
3- Ich tagge das Image als v4-arm  
4- Ich push

Für diejenigen, die einen Live-Fail wollen ^^ =\> [https://github.com/VonOx/GLADYS\_CI/actions/runs/528130905](https://github.com/VonOx/GLADYS_CI/actions/runs/528130905)

🤞

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [1. Februar 2021 um 15:47 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/14 "2021-02-01T15:47:36Z")

</div>

Genial! Das muss auch für diese mindestens gemacht werden:

- v4-amd64
- v4-arm64v8

Sie werden auch verwendet

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [1. Februar 2021 um 18:46 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/15 "2021-02-01T18:46:36Z")

</div>

Das funktioniert, ich bereite einen sauberen PR für dich vor

[https://hub.docker.com/repository/docker/vonox/gladys/tags?page=1&ordering=last\_updated](https://hub.docker.com/repository/docker/vonox/gladys/tags?page=1&ordering=last_updated)

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [2. Februar 2021 um 17:16 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/16 "2021-02-02T17:16:28Z")

</div>

@VonOx Danke für das PR! Es ist gemerged, und es läuft hier: [https://github.com/GladysAssistant/Gladys/actions/runs/531432836](https://github.com/GladysAssistant/Gladys/actions/runs/531432836)

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [2. Februar 2021 um 17:39 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/17 "2021-02-02T17:39:43Z")

</div>

Das ist build 😏 (2 Minuten mit dem Cache)

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [2. Februar 2021 um 18:01 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/18 "2021-02-02T18:01:17Z")

</div>

Beeindruckend 😍 gut gemacht @VonOx 👏👏

Am Ende dauert der Legacy-Tag 50 Sekunden, das geht, ist nicht so schlimm 🙂

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [2. Februar 2021 um 19:30 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/19 "2021-02-02T19:30:50Z")

</div>

Ja, das ist nur Bandbreite (Pull/Push).

Vielleicht gibt es eine elegantere Lösung, aber so funktioniert es ohne den Build-Zeit zu verschlimmern.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [3. Februar 2021 um 17:55 UTC](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077/20 "2021-02-03T17:55:24Z")

</div>

Ich habe das Bild getestet, alles funktionierte, also habe ich das Geheimnis geändert, damit es auf gladysassistant/gladys veröffentlicht wird, und habe den Build neu gestartet! Hier weiter: [https://github.com/GladysAssistant/Gladys/actions/runs/531432836](https://github.com/GladysAssistant/Gladys/actions/runs/531432836)

[Nächste Seite](https://community.gladysassistant.com/t/build-gladys-v4-0-5/6077.md?page=2)
