So markieren Sie Docker-Bilder mit Docker-Compose

119

Ich möchte ein Image über Docker-Compose erstellen und ein bestimmtes Tag darauf setzen. Die Dokumentation sagt:

Compose erstellt und markiert es mit einem generierten Namen und verwendet dieses Bild anschließend.

Ich kann jedoch keine Möglichkeit finden, ein Tag anzugeben, und für erstellte Bilder wird immer das 'neueste' Tag angezeigt.

4ybaka
quelle
1
github.com/docker/compose/issues/2092 ist die Unterstützung für die
Problemverfolgung

Antworten:

181

Es scheint, dass die Dokumente / das Tool aktualisiert wurden und Sie das imageTag jetzt zu Ihrem Skript hinzufügen können . Das war für mich erfolgreich.

Beispiel:

version: '2'
services:

  baggins.api.rest:
    image: my.image.name:rc2
    build:
      context: ../..
      dockerfile: app/Docker/Dockerfile.release
    ports:
      ...

https://docs.docker.com/compose/compose-file/#build

Randy Larson
quelle
7
In der Tat heißt es: "Wenn Sie sowohl ein Image als auch ein Build angeben, benennt Compose das erstellte Image mit der im Bild angegebenen Webapp und dem optionalen Tag"
Daniel Andrei Mincă
10
Was für eine seltsame Schnittstelle! Das Vorhandensein eines Feldes invertiert die Semantik eines anderen Feldes, das sich auf derselben Einrückungsstufe befindet.
Navin
@ numbers1311407 Möglicherweise möchten Sie Ihren Kommentar bearbeiten / löschen, da der Kommentar, auf den Sie antworten, nicht mehr vorhanden ist. Es sieht so aus, als ob Sie mit ootwch oder der Antwort nicht einverstanden sind.
Navin
4
Ja, ich fand dieses Konzept so seltsam. Ich hatte eine tagOption erwartet . Ich durchsuchte die Dokumente und suchte erfolglos nach Tags
Matthew Brent
1
@Navin Wenn dies nicht seltsam genug ist, versuchen Sie, image: my.image.name:rc2docker build: .-compose.yml und docker-compose.override.yml einzufügen und lassen Sie docker-compose die beiden zusammenführen! (Sie erhalten den gleichen Effekt wie die akzeptierte Antwort)
Craftonix - AA
23

Ursprüngliche Antwort 20. November 15 :

Keine Option für ein bestimmtes Tag ab heute. Docker Compose macht einfach seine Magie und weist ein Tag zu, wie Sie es sehen. Sie können immer einen Skriptaufruf habendocker tag <image> <tag> nachdem Sie Docker-Compose aufgerufen haben.

Jetzt gibt es eine Option wie oben oder hier beschrieben

build: ./dir
image: webapp:tag
Rico
quelle
6

Wenn Sie sowohl ein Image als auch ein Build angeben, benennt Compose das erstellte Image mit der im Bild angegebenen Webanwendung und dem optionalen Tag:

build: ./dir
image: webapp:tag

Dies führt zu einem Bild mit dem Namen webappund dem Tag tag, aus dem erstellt wurde./dir .

https://docs.docker.com/compose/compose-file/#build

Javier Rojano
quelle