Как пометить изображение докера с помощью docker-compose

119

Я хочу создать образ с помощью docker-compose и установить для него определенный тег. В документации говорится:

Compose создаст его и пометит его сгенерированным именем, а затем будет использовать это изображение.

Но я не могу найти способ указать тег, а для созданных изображений я всегда вижу тег «последний».

4ybaka
источник
1
github.com/docker/compose/issues/2092 - это поддержка отслеживания проблем для создания образа с другим именем
dnephin

Ответы:

182

Похоже, что документы / инструмент были обновлены, и теперь вы можете добавить imageтег в свой скрипт. Для меня это было удачно.

Пример:

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

Рэнди Ларсон
источник
7
В самом деле, он говорит: «Если вы укажете изображение, а также сборку, тогда Compose называет созданный образ с помощью webapp и необязательного тега, указанного в образе»
Даниэль Андрей Минкэ
10
Какой странный интерфейс! Наличие одного поля инвертирует семантику другого поля, которое находится на том же уровне отступа.
Navin
@ numbers1311407 Возможно, вы захотите отредактировать / удалить свой комментарий, поскольку комментарий, на который вы отвечаете, исчез. Похоже, вы не согласны с ootwch или ответом.
Navin
4
Да, я нашел эту концепцию такой странной. Я ожидал tagварианта. Я рылся в документации в поисках тега безрезультатно
Мэтью Брент,
1
@Navin Если этого недостаточно, попробуйте image: my.image.name:rc2вставить docker-compose.yml и build: .docker-compose.override.yml и позвольте docker-compose объединить их! (Вы получаете тот же эффект, что и принятый ответ)
Craftonix - AA
23

Оригинальный ответ 20 ноября 2015 г . :

На сегодняшний день нет возможности использовать конкретный тег. Docker compose просто творит чудеса и назначает тег, как вы видите. У вас всегда может быть вызов скрипта docker tag <image> <tag>после вызова docker-compose.

Теперь есть вариант, как описано выше или здесь

build: ./dir
image: webapp:tag
Рико
источник
6

Если вы указываете изображение, а также build, то Compose именует созданное изображение с помощью webapp и необязательного тега, указанного в image:

build: ./dir
image: webapp:tag

В результате получается изображение с именем webappи тегами tag, построенное из ./dir.

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

Хавьер Рохано
источник