Пометка изображения / контейнера с помощью docker compose - PullRequest
1 голос
/ 08 апреля 2019

Я пытаюсь создать образ / контейнер с помощью docker compose.Контейнер строится / работает успешно, но изображения REPOSITORY и TAG оба отображаются как <none> в выходных данных для docker images, и контейнер получает автоматически сгенерированное имя (например, eloquent_wiles).Для этого я бы пометил изображение / контейнер именами, указанными в моих конфигурационных файлах (в этом случае я бы хотел, чтобы они назывались «myservice», а изображение - «v2»).

Iиметь следующие docker-compose.yml:

version: '3'
services:
  myservice:
    build: .
    image: myservice:v2
    container_name: myservice
    ports:
      - "1337:1337"

Это мое Dockerfile:

FROM node:10

WORKDIR /usr/src/myservice
COPY . /usr/src/myservice
EXPOSE 1337/tcp
RUN yarn \
  && yarn transpile \
  && node ./build/grpc-server.js

docker -v дает Docker version 18.09.2, build 6247962

docker-compose -v дает docker-compose version 1.22.0, build f46880fe

И я бегу docker-compose build.Я получаю те же результаты, используя docker-compose version 2.

Я не думаю, что кто-то может заметить, что я делаю неправильно?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Это было очень глупо с моей стороны.Проблема заключалась в последней строке Dockerfile, где вы можете видеть, что я запускаю сервер как часть процесса сборки, а не как точку входа, блокируя сборку от достижения этапа, на котором она помечает изображения.Спасибо @Mihai за указание на то, что изображение <none>:<none> является промежуточным, а не результатом моей сборки.

0 голосов
/ 08 апреля 2019
  1. Создайте именованный образ: docker build -t <repo>:<tag> . в каталоге, где находится файл Docker.
  2. Разверните именованный сервис: docker stack deploy -c <your_yaml_file> <your_stack> --with-registry-auth в каталоге, где находится ваш YAML.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...