首页 > 解决方案 > Docker Compose 文件中的问题

问题描述

我是新码头工人。我在 Docker compose 中遇到问题。请帮助我。

下面是我的 docker-compose.yaml 文件

version: "2"
services:

  database:
    image: mysql:5.7
    volumes:
      - ./data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
  wordpress:
    image: wordpress
    depends_on:
      - database
    ports:
      - "8080:80"
    restart: always
    environment:
        WORDPRESS_DB_HOST: database:3306
        WORDPRESS_DB_USER: wordpress
        WORDPRESS_DB_PASSWORD: wordpress
        WORDPRESS_DB_NAME: wordpress
    volumes:
     db_data: {}

下面是我得到的错误。请帮我修复错误。

ERROR: The Compose file './docker-compose.yaml' is invalid because:
services.wordpress.volumes contains an invalid type, it should be an array

标签: docker-composesbt-docker-compose

解决方案


您将数据库数据安装到主机上,但使用了db_data在服务内部调用的(未声明的)卷wordpress​​。我已经将卷添加db_data到卷列表中,并将其作为卷添加到database服务中。

我猜你正在使用这个设置进行本地开发,所以我还安装了wp-content你正在运行的文件夹docker-compose up/var/www/html/wp-content所以上传、插件和主题等文件可以存储在版本控制中/在你的本地机器上而不是在容器内。

version: "2"
services:

  database:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    image: wordpress
    depends_on:
      - database
    ports:
      - "8080:80"
    restart: always
    environment:
        WORDPRESS_DB_HOST: database:3306
        WORDPRESS_DB_USER: wordpress
        WORDPRESS_DB_PASSWORD: wordpress
        WORDPRESS_DB_NAME: wordpress
    volumes:
      - "./wp-content:/var/www/html/wp-content"

volumes:
  db_data:

推荐阅读