首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用docker compose标记图像/容器

使用docker compose标记图像/容器
EN

Stack Overflow用户
提问于 2019-04-08 23:18:44
回答 2查看 1.1K关注 0票数 1

我正在尝试构建一个带有docker compose的镜像/容器。容器成功构建/运行,但是镜像REPOSITORYTAGdocker images的输出中都显示为<none>,并且容器获得一个自动生成的名称(例如eloquent_wiles)。我希望它用我的配置文件中指定的名称来标记镜像/容器(在这种情况下,我希望它们被命名为'myservice‘,镜像被标记为'v2')。

我有以下docker-compose.yml

代码语言:javascript
复制
version: '3'
services:
  myservice:
    build: .
    image: myservice:v2
    container_name: myservice
    ports:
      - "1337:1337"

这是我的Dockerfile

代码语言:javascript
复制
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 version2得到了相同的结果。

我想没人能发现我做错了什么吧?

EN

回答 2

Stack Overflow用户

发布于 2019-04-08 23:25:56

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

Stack Overflow用户

发布于 2019-04-09 02:32:15

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55576713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档