You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Compose YAML文件中youmas服务环境配置错误求助

修复Docker Compose中youmas服务的配置错误

问题分析

你的youmas服务存在两个关键问题:

  1. 缺少镜像或构建配置:Docker Compose无法确定启动该服务所需的镜像文件,这是导致配置错误的核心原因。
  2. 你最初提供的错误示例中存在YAML缩进错误:environment下的XDEBUG_CONFIG未按层级正确缩进(虽然完整代码里缩进已修正,但需注意YAML对缩进要求严格,必须保持一致的缩进层级)。

解决方案

针对上述问题,给出两种常见修复方式:

方式一:复用已有的youmas-app镜像

如果youmas服务是基于已定义的youmas-app镜像创建,只需添加image字段指定镜像:

youmas:
  image: youmas-app  # 添加镜像配置,复用已构建的youmas-app镜像
  environment:
    XDEBUG_CONFIG: remote_host=172.17.0.1 remote_port=9000 remote_enable=1
  networks:
    - youmas

方式二:指定单独的构建配置

如果youmas服务需要使用独立的Dockerfile,添加build字段定义构建规则:

youmas:
  build:
    context: .
    dockerfile: ./path/to/your/Dockerfile  # 替换为实际Dockerfile的路径
  environment:
    XDEBUG_CONFIG: remote_host=172.17.0.1 remote_port=9000 remote_enable=1
  networks:
    - youmas

修复后的完整Docker Compose代码

version: "3"
services:
  #PHP
  youmas-app:
    build:
      context: .
      dockerfile: Dockerfile
      args:
        - WITH_XDEBUG=true
    image: youmas-app
    container_name: youmas-app
    restart: unless-stopped
    tty: true
    environment:
      SERVICE_NAME: app
      SERVICE_TAGS:
        dev
        # If you don't want to use xDebug, set remote_enable=0
      PHP_IDE_CONFIG: "serverName=Docker"
      XDEBUG_CONFIG: remote_host=192.168.178.33 remote_port=9001
    working_dir: /var/www
    volumes:
      - ./:/var/www
      - ./docker/production/php/local.ini:/usr/local/etc/php/conf.d/local.ini

  youmas:
    image: youmas-app  # 新增镜像配置
    environment:
      XDEBUG_CONFIG: remote_host=172.17.0.1 remote_port=9000 remote_enable=1
    networks:
      - youmas

  #Nginx
  youmas-webserver:
    build:
      context: .
      dockerfile: "./docker/production/nginx/Dockerfile"
    container_name: youmas-webserver
    restart: unless-stopped
    tty: true
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./:/var/www
      - ./docker/production/nginx/conf.d/:/etc/nginx/conf.d/
      - ./docker/production/certbot/conf:/etc/letsencrypt
      - ./docker/production/certbot/www:/var/www/certbot
    networks:
      - youmas
    command: '/bin/sh -c ''while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g "daemon off;"'''

  # Certbot SSL
  certbot:
    image: certbot/certbot
    volumes:
      - ./docker/production/certbot/conf:/etc/letsencrypt
      - ./docker/production/certbot/www:/var/www/certbot
    entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"


  #MySQL
  youmas-database:
    image: mysql:5.7.22
    container_name: youmas-database
    restart: unless-stopped
    tty: true
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: youmas
      MYSQL_ROOT_PASSWORD: K4@|ahdpof8@@!~
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    volumes:
      - dbdata:/var/lib/mysql/
      - ./docker/production/mysql/my.cnf:/etc/mysql/my.cnf
    networks:
      - youmas

  #PHP My Admin
  youmas-phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - "7000:80"
    links:
      - youmas-database:youmas-database
    environment:
      MYSQL_USER: root
      MYSQL_PASSWORD: codeverze
      MYSQL_ROOT_PASSWORD: codeverze
    networks:
      - youmas

#Networks
networks:
  youmas:
    driver: bridge
#Volumes
volumes:
  dbdata:
    driver: local

内容的提问来源于stack exchange,提问作者laalaaala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 10:05:23