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

Portainer部署Nginx Proxy Manager栈遇volumes格式错误求助

Nginx Proxy Manager栈部署错误解决方法

你提供的Docker Compose配置存在缩进错误,导致部署失败。

原错误配置

version: '3'
services:
 app:
  image: 'jc21/nginx-proxy-manager:latest'
  restart: unless-stopped
  ports:
   - "80:80"
   - "81:81"
   - "443:443"
  environment:
   DB_MYSQL_HOST: "db"
   DB_MYSQL_PORT: 3306
   DB_MYSQL_USER: "admin"
   DB_MYSQL_PASSWORD: "adminpwd"
   DB_MYSQL_NAME: "nginx"
   volumes:
    - '/mnt/nginx/data:/data'
    - '/mnt/nginx/letsencrypt:/etc/letsencrypt'
 db:
  image: 'jc21/mariadb-aria:latest'
  restart: unless-stopped
  environment:
   MYSQL_ROOT_PASSWORD: 'adminpwd'
   MYSQL_DATABASE: 'nginx'
   MYSQL_USER: 'admin'
   MYSQL_PASSWORD: 'adminpwd'
  volumes:
   - '/mnt/nginx/data/mysql:/var/lib/mysql'

部署错误信息

Deployment error
failed to deploy a stack: services.app.environment.volumes must be a string, number, boolean or null

问题根源

app服务的volumes配置被错误嵌套在environment节点下了。Docker Compose会将其识别为环境变量的键,而环境变量的值必须是字符串、数字、布尔值或null类型,因此触发了格式错误。

修正后的正确配置

version: '3'
services:
 app:
  image: 'jc21/nginx-proxy-manager:latest'
  restart: unless-stopped
  ports:
   - "80:80"
   - "81:81"
   - "443:443"
  environment:
   DB_MYSQL_HOST: "db"
   DB_MYSQL_PORT: 3306
   DB_MYSQL_USER: "admin"
   DB_MYSQL_PASSWORD: "adminpwd"
   DB_MYSQL_NAME: "nginx"
  volumes:
    - '/mnt/nginx/data:/data'
    - '/mnt/nginx/letsencrypt:/etc/letsencrypt'
 db:
  image: 'jc21/mariadb-aria:latest'
  restart: unless-stopped
  environment:
   MYSQL_ROOT_PASSWORD: 'adminpwd'
   MYSQL_DATABASE: 'nginx'
   MYSQL_USER: 'admin'
   MYSQL_PASSWORD: 'adminpwd'
  volumes:
   - '/mnt/nginx/data/mysql:/var/lib/mysql'

只需要把app服务下的volumes节点,调整到和environment同级的缩进位置,就能解决这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:15:25