繁体   English   中英

使用Docker Compose标记图像/容器

[英]Tagging image/container with docker compose

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

我有以下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 version 18.09.2, build 6247962 docker -v提供Docker version 18.09.2, build 6247962

docker-compose version 1.22.0, build f46880fe docker-compose -v提供docker-compose version 1.22.0, build f46880fe

我正在运行docker-compose build 使用docker-compose版本2可获得相同的结果。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM