执行docker-compose up报错:services.networks不支持'app'配置项
解决Docker Compose报错:Unsupported config option for services.networks: 'app'
错误原因
你的docker-compose.yml核心问题是**networks配置块的缩进位置错误**:你把networks写在了services节点内部(作为phpmyadmin服务的同级子项),但按照Docker Compose的语法规范,networks是顶级配置项,必须和version、services处于同一层级。
修正后的完整配置
version: '3.4' services: backend: build: context: ./backend_app dockerfile: Dockerfile environment: DB_HOST: db DB_DATABASE: news_app DB_USERNAME: root DB_PASSWORD: harr ports: - 8000:8000 volumes: - ./backend_app:/app/backend_app depends_on: - db networks: - app - db frontend: build: context: ./frontend_app dockerfile: Dockerfile tty: true ports: - 3000:3000 volumes: - ./frontend_app:/app/frontend_app depends_on: - backend networks: - app db: image: mysql:latest environment: MYSQL_ROOT_PASSWORD: harr MYSQL_DATABASE: news_db ports: - 3305:3306 # 注意:MySQL默认容器内端口是3306,映射需对应才能正常访问 networks: - db phpmyadmin: image: phpmyadmin:latest ports: - 1009:80 environment: - PMA_ARBITRARY=1 networks: - db # 加入db网络才能访问MySQL服务 # 将networks移至顶级位置,与services同级 networks: app: driver: bridge db: driver: bridge # 可显式指定驱动,省略则默认使用bridge
额外提示
- MySQL容器默认端口为3306,原配置中的
3305:3305会导致外部无法正常连接数据库,建议修正为3305:3306 - phpmyadmin需要加入
db网络才能访问MySQL服务,否则可能出现数据库连接失败的问题
内容的提问来源于stack exchange,提问作者harristars
相关产品推荐
相关产品推荐

