Como marcar a imagem do docker com docker-compose

119

Eu quero construir uma imagem via docker-compose e definir uma tag específica para ela. A documentação diz:

O Compose o construirá e marcará com um nome gerado e usará essa imagem depois disso.

Mas não consigo encontrar uma maneira de especificar a tag e, para imagens construídas, sempre vejo a tag 'mais recente'.

4ybaka
fonte
1
github.com/docker/compose/issues/2092 é o suporte de rastreamento de problemas para construir a imagem com um nome diferente
dnephin

Respostas:

182

Parece que os documentos / ferramenta foram atualizados e agora você pode adicionar a imagetag ao seu script. Isso foi um sucesso para mim.

Exemplo:

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
fonte
7
Na verdade, ele diz "Se você especificar a imagem, bem como a construção, então o Compose nomeia a imagem construída com o webapp e a tag opcional especificada na imagem"
Daniel Andrei Mincă
10
Que interface estranha! A presença de um campo inverte a semântica de outro campo que está no mesmo nível de indentação.
Navin
@ numbers1311407 Você pode querer editar / excluir seu comentário, já que o comentário que você está respondendo se foi. Parece que você está discordando de ootwch ou da resposta.
Navin
4
Sim, eu achei esse conceito tão estranho. Eu esperava uma tagopção. Eu estava vasculhando os documentos à procura de etiqueta sem sucesso
Matthew Brent
1
@Navin Se isso não for estranho o suficiente, tente colocar image: my.image.name:rc2docker-compose.yml e build: .docker-compose.override.yml e deixe docker-compose mesclar os dois! (Você obtém o mesmo efeito da resposta aceita)
Craftonix - AA
23

Resposta original de 20 de novembro de 2015 :

Nenhuma opção para uma tag específica a partir de Hoje. O Docker compose apenas faz sua mágica e atribui uma tag como você está vendo. Você sempre pode ter alguma chamada de script docker tag <image> <tag>depois de chamar docker-compose.

Agora existe uma opção conforme descrito acima ou aqui

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

Se você especificar imagem e também build, o Compose nomeia a imagem construída com o webapp e a tag opcional especificada na imagem:

build: ./dir
image: webapp:tag

Isso resulta em uma imagem nomeada webappe marcada tag, construída a partir de ./dir.

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

Javier Rojano
fonte