我目前正在尝试设置 Pterodactyl
这是我的 docker-compose.yml `版本:“3.8”
x-常见: 数据库: &db-环境 # 你不需要改变这些,因为它不会暴露给公众。 MYSQL_PASSWORD: &db 密码“CHANGE_ME” MYSQL_ROOT_PASSWORD:“CHANGE_ME_TOO” 控制板: 面板环境(&P) #这是您的面板在反向代理后所在的 URL。 # 将其设置为“https://yoursubdomain.yourdomain.yourdomainstld” APP_URL:“https://subdomain.domain.tld” # 可以在这里找到有效时区的列表: # http://php.net/manual/en/timezones.php APP_TIMEZONE:“美国/纽约” APP_SERVICE_AUTHOR:“[电子邮件受保护]”
#邮件: #&邮件环境 #MAIL_FROM:“[电子邮件受保护]” #MAIL_DRIVER:“smtp” #MAIL_HOST:“smtp.gmail.com” #MAIL_PORT:“587” #MAIL_USERNAME:“[电子邮件受保护]” #MAIL_PASSWORD:“” #MAIL_ENCRYPTION:“真” 服务:
翅膀: 图片:ghcr.io/pterodactyl/wings:latest 重新启动:始终 网络: - ptero0 # 这些是Wings暴露的端口,我不建议更改它们。 端口: - “8443:443” - “2022:2022” 蒂:正确 环境: TZ:“美国/纽约” # 为了便于设置,将使用 root 用户。 WINGS_UID:0 WINGS_GID:0 WINGS_USERNAME:根 # 这是 docker 将容器的某些部分绑定到您实际的位置的地方 # 主机操作系统。这些位置稍后会用到。 卷: - "/var/run/docker.sock:/var/run/docker.sock" # 不要更改 - “/var/lib/docker/containers:/var/lib/docker/containers” # 不要更改 - "/opt/pterodactyl/wings/config:/etc/pterodactyl" # 随意更改。 - "/var/lib/pterodactyl:/var/lib/pterodactyl" # 不要更改 - "/var/log/pterodactyl:/var/log/pterodactyl" # 不要更改 - "/tmp/pterodactyl/:/tmp/pterodactyl/" # 建议不要更改。
数据库: 图片:mariadb:10.5 重新启动:始终 命令: --default-authentication-plugin=mysql_native_password 卷: -“/opt/翼手龙/面板/数据库:/var/lib/mysql” 环境: <<: *db-environment MYSQL_DATABASE: "panel" MYSQL_USER: "pterodactyl"
缓存: 图片:redis:alpine 重新启动:总是
面板: 图片:ghcr.io/pterodactyl/panel:latest 重新启动:始终 # 对于 NGINX 反向代理,为了简单起见,我将使用这些端口。 端口: - “802:80” - “4432:443” # 在 docker 网络中将这些容器链接在一起。 链接: - 数据库 - 缓存 # 这是 docker 将容器的某些部分绑定到您实际的位置的地方 # 主机操作系统。这些其实并不那么重要。 卷: -“/opt/翼手龙/面板/appvar/:/app/var/” -“/opt/pterodactyl/panel/nginx/:/etc/nginx/http.d/” -“/opt/翼手龙/面板/日志/:/应用程序/存储/日志” # 设置配置内容 环境: <<: [*panel-environment] # <<: [*mail-environment] DB_PASSWORD: *db-password APP_ENV: "production" APP_ENVIRONMENT_ONLY: "false" CACHE_DRIVER: "redis" SESSION_DRIVER: "redis" QUEUE_DRIVER: "redis" REDIS_HOST: "cache" DB_HOST: "database" DB_PORT: "3306"
网络: 翼0: 名称: ptero0 司机:桥 伊帕姆: 配置: - 子网:“192.55.0.0/16” 驱动程序选项: com.docker.network.bridge.name: ptero0 `
现在我尝试运行 docker-compose up 并收到此错误:
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the
服务key, or omit the
版本 key and place your service definitions at the root of the file to use version 1. For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/
如何解决这个问题?
您正在使用非常旧版本的撰写工具。过去一年左右唯一支持的版本忽略了
version:
行;从 2020 年 2 月起,从 Compose 1.25.5开始支持
version: "3.8"
。
当前 (2.x) 版本的 Compose 作为 Docker CLI 插件运行。 Docker 文档有安装说明。
如果您有两个版本的 Compose 可用,则可能需要确保运行带有空格的
docker compose
,而不是带有连字符的 docker-compose
。
您也许可以将
version:
行更改为较旧的内容。 Compose 文件格式没有太大变化,声明 version: "3.0"
也很可能有效。请注意,这是一个非常复杂的 Compose 文件,它使用了一些过时的功能 (links:
),具有一些不必要的设置 (networks:
),并授予自身对整个主机系统的不受限制的管理员级别访问权限(通过绑定挂载Docker 套接字),并简化 Compose 文件可能有助于解决任何与版本相关的问题。