使用docker compose标记图像/容器

时间:2019-04-08 15:18:44

标签: docker docker-compose

我正在尝试使用docker compose构建映像/容器。容器成功构建/运行,但是图像stdlib.hREPOSITORYTAG的输出中都显示为<none>,并且容器获得了自动生成的名称(例如{ {1}})。我希望它使用在配置文件中指定的名称来标记图像/容器(在这种情况下,我希望将它们命名为“ myservice”,并将图像标记为“ v2”)。

我有以下docker images

eloquent_wiles

这是我的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版本2可获得相同的结果。

我想没有人能发现我在做什么错吗?

2 个答案:

答案 0 :(得分:0)

  1. 在Dockerfile所在的目录中构建命名映像:docker build -t <repo>:<tag> .
  2. 在YAML所在的目录中部署命名服务:docker stack deploy -c <your_yaml_file> <your_stack> --with-registry-auth

答案 1 :(得分:0)

我真傻。问题出在Dockerfile的最后一行,您可以在其中看到我作为构建过程的一部分而不是入口点启动服务器,从而阻止了构建到达标记图像的步骤。 感谢@Mihai指出<none>:<none>图像是中间图像,而不是我构建的结果。