Jak oznaczyć obraz dockera za pomocą docker-compose

119

Chcę zbudować obraz za pomocą docker-compose i ustawić dla niego określony tag. Dokumentacja mówi:

Compose zbuduje i otaguje go wygenerowaną nazwą, a następnie użyje tego obrazu.

Ale nie mogę znaleźć sposobu na określenie tagu i dla zbudowanych obrazów zawsze widzę tag „najnowsze”.

4ybaka
źródło
1
github.com/docker/compose/issues/2092 to obsługa śledzenia problemów przy tworzeniu obrazu o innej nazwie
dnephin.

Odpowiedzi:

182

Wygląda na to, że dokumenty / narzędzie zostały zaktualizowane i możesz teraz dodać imagetag do swojego skryptu. To się udało.

Przykład:

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
źródło
7
Rzeczywiście, jest tam napisane: „Jeśli określisz obraz i kompilację, wtedy Compose nazywa zbudowany obraz za pomocą aplikacji internetowej i opcjonalnego tagu określonego w obrazie”
Daniel Andrei Minca
10
Co za dziwny interfejs! Obecność jednego pola odwraca semantykę innego pola, które znajduje się na tym samym poziomie wcięcia.
Navin
@ numbers1311407 Możesz chcieć edytować / usunąć swój komentarz, ponieważ komentarz, na który odpowiadasz, zniknął. Wygląda na to, że nie zgadzasz się z ootwch lub z odpowiedzią.
Navin
4
Tak, wydało mi się to dziwne. Spodziewałem się tagopcji. Przeglądałem dokumenty w poszukiwaniu tagu, ale bezskutecznie
Matthew Brent
1
@ Navin Jeśli to nie jest wystarczająco dziwne, spróbuj image: my.image.name:rc2wstawić docker build: .-compose.yml i docker-compose.override.yml i pozwól docker-compose połączyć te dwa! (Efekt jest taki sam, jak zaakceptowana odpowiedź)
Craftonix - AA
23

Oryginalna odpowiedź 20 listopada 2015 :

Brak opcji dla określonego tagu na dzień dzisiejszy. Docker Compose po prostu robi swoje i przypisuje tag, tak jak widzisz. Zawsze możesz mieć wywołanie skryptu docker tag <image> <tag>po wywołaniu docker-compose.

Teraz jest opcja opisana powyżej lub tutaj

build: ./dir
image: webapp:tag
Rico
źródło
6

Jeśli określisz obraz, a także kompilację, komponent nada nazwę zbudowanemu obrazowi za pomocą aplikacji internetowej i opcjonalnego tagu określonego w obrazie:

build: ./dir
image: webapp:tag

W rezultacie powstaje obraz nazwany webappi oznaczony tag, zbudowany z ./dir.

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

Javier Rojano
źródło