Comment étiqueter une image docker avec docker-compose

119

Je souhaite créer une image via docker-compose et lui définir une balise spécifique. La documentation dit:

Compose le construira et le marquera avec un nom généré, et utilisera cette image par la suite.

Mais je ne trouve pas de moyen de spécifier la balise et pour les images construites, je vois toujours la balise «la plus récente».

4ybaka
la source
1
github.com/docker/compose/issues/2092 est le support de suivi des problèmes pour créer l'image avec un nom différent
dnephin

Réponses:

182

Il semble que la documentation / l'outil a été mis à jour et vous pouvez maintenant ajouter la imagebalise à votre script. Cela a réussi pour moi.

Exemple:

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
la source
7
En effet, il dit: "Si vous spécifiez l'image ainsi que la construction, Compose nomme l'image construite avec l'application web et la balise facultative spécifiée dans l'image"
Daniel Andrei Mincă
10
Quelle étrange interface! La présence d'un champ inverse la sémantique d'un autre champ qui se trouve au même niveau d'indentation.
Navin
@ numbers1311407 Vous voudrez peut-être modifier / supprimer votre commentaire car le commentaire auquel vous répondez a disparu. Il semble que vous soyez en désaccord avec ootwch ou la réponse.
Navin
4
Ouais, j'ai trouvé ce concept si étrange. Je m'attendais à une tagoption. Je parcourais les documents à la recherche d'une étiquette en vain
Matthew Brent
1
@Navin Si ce n'est pas assez étrange, essayez de mettre image: my.image.name:rc2docker-compose.yml et build: .docker-compose.override.yml et laissez docker-compose fusionner les deux! (Vous obtenez le même effet que la réponse acceptée)
Craftonix - AA
23

Réponse originale 20 nov. :

Aucune option pour une balise spécifique à partir d'aujourd'hui. Docker compose fait juste sa magie et attribue une balise comme vous le voyez. Vous pouvez toujours avoir un appel de script docker tag <image> <tag>après avoir appelé docker-compose.

Maintenant, il y a une option comme décrit ci-dessus ou ici

build: ./dir
image: webapp:tag
Rico
la source
6

Si vous spécifiez image ainsi que build, Compose nomme l'image construite avec l'application web et la balise facultative spécifiée dans l'image:

build: ./dir
image: webapp:tag

Il en résulte une image nommée webappet balisée tag, construite à partir de ./dir.

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

Javier Rojano
la source