【问题标题】:how to build docker image by docker-compose.yml如何通过 docker-compose.yml 构建 docker 镜像
【发布时间】:2020-06-02 10:23:07
【问题描述】:

这是我的docker-compose.yml

version: '2'
services:
web:
  build: .
  context: ./
  dockerfile: Dockerfile
  ports:
    - "8080:8080"
  container_name: demo
  volumes:
    - .:/images

我遇到了一个错误:

错误:撰写文件“./docker-compose.yml”无效,因为: services.web 不支持的配置选项:'dockerfile'

所以我想构建容器并运行。我将有更多的容器来构建和运行。 docker-compose可以吗?

【问题讨论】:

  • 您是否尝试过删除dockerfile 选项?由于错误清楚地表明这不应该存在
  • 这里不需要context:dockerfile:。如果您保留它们,则它们需要再缩进一级,并且您需要从build: 行中删除上下文目录名称。
  • @FrancescoGimignano 我必须构建容器。没有这些,我该如何构建?
  • @DavidMaze 可以通过从构建中删除上下文目录名称来告诉更多你的意思:
  • 您需要build: .build: { context: . },但不能同时使用。

标签: docker docker-compose


【解决方案1】:

如果我没记错的话,问题是在build 之后你有一个点,dockerfilecontext 是不正确的。而且我认为context 中的栏不应该在那里。

version: "3.7"
services:
  api:
    image: image-name
    build:
      context: .
      dockerfile: path/to/Dockerfile
    container_name: container-name

我认为这解决了您遇到的问题,但无法测试。

【讨论】:

  • 你能分享整个 yml。因为,我很困惑构建在哪个级别:将是
  • 我完成了更多文件
  • 错误:“./docker-compose.yml”中的版本不受支持。但是如果我添加 version: "2" 。它工作正常。
  • 该配置适用于我的 docker-compose 版本 1.22.0
  • 主 docker-compose 版本 1.17.1,在 ubuntu 18 上构建未知
【解决方案2】:

你需要尊重缩进,这里是一个构建 Nginx docker 镜像的例子https://github.com/wshihadeh/three_methods_to_share_assets/blob/master/precompile_during_docker_build/docker-compose.yml

version: '3.7'
services:
  web:
    build:
      context: nginx
      dockerfile: Dockerfile
    command: server
    ports:
      - 80:80

【讨论】:

    猜你喜欢
    • 2022-11-11
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 2020-10-06
    • 2017-12-22
    • 1970-01-01
    相关资源
    最近更新 更多