无法启动 docker-compose 服务

时间:2021-03-13 23:44:57

标签: docker docker-compose dockerfile

当我运行这个 docker compose 文件时,出现了一个奇怪的错误。您可以在文本下方看到。我是 Dock 的新手,所以任何人都可以帮助我。

错误:

ERROR: The compose file './docker-compose.yaml is invalid because:
services.wordpress.build contains an invalid type, it should be a string, or an object

我的 docker-compose 文件:

    version: "3.7"
    services:
      db:
        build:  ./db
        container_name: db
        ports:
          - "3306:3306"
        volumes:
          - db_data:/var/lib.mysql
        environment:
          MYSQL_ROOT_PASSWORD: Test123
          MYSQL_DATABASE: wordpress
          MYSQL_USER: wordpress
          MYSQL_PASSWORD: Test123
        networks:
          website_network:
            aliases:
              - wordpress
      wordpress:
        build:
        container_name: wordpress_new
        ports:
          - "80:80"
        networks:
          website_network:
            aliases:
              - wordpress
        environment:
          WORDPRESS_DB_HOST: db:3306
          WORDPRESS_DB_USER: wordpress
          WORDPRESS_DB_PASSWORD: Test123
          WORDPRESS_DB_NAME: wordpress
    networks: 
      website_networks:
        name: website_network
    volumes:
      db_data:
          driver: local
          name: db_data

2 个答案:

答案 0 :(得分:2)

您的 services.wordpress.build 配置选项后面需要一个值,就像您在 services.db.build: ./db 中所做的那样。此值表示在哪里可以找到您的 Dockerfile 以及 Docker 将尝试构建您的映像的上下文。

检查 the docs 以了解如何指定构建选项。

这就是你的文件在 wordpress 部分的样子:

  wordpress:
    build: BUILD_PATH_HERE # you need a value here if you're building a new docker image

根据文档,请注意,如果您的 Dockerfile 具有备用名称或需要特殊的 build context,则您需要指定这些值以及一个对象。例如:

  wordpress:
    build:
      context: ./some/context/path # can be a relative or absolute path
      dockerfile: Dockerfile-alternate-name

或者,如果您使用的是预构建的映像,则可以指定:

  wordpress:
    image: IMAGE_NAME

答案 1 :(得分:1)

您缺少构建属性值。

wordpress:
    build: SOMETHING NEEDS TO BE HERE
    container_name: wordpress_new

构建运行的路径或更复杂的对象。可能只是容器源所在文件夹的名称。 这就是它的样子:object 如果它是一个对象。如果它只是一条路径,它的外观是这样的:path

更多信息:https://docs.docker.com/compose/compose-file/compose-file-v3/#build