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
相关产品推荐
相关产品推荐

