当我运行这个 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
答案 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