使用 mariaDB 错误消息通过 Docker 部署 mariaDB 和 nextcloud

Deploy mariaDB and nextcloud via Docker with a mariaDB error message

我有一个关于 nextcoud、mariaDB 和 Docker 的问题。

初始情况: 我有一台 Synology NAS,想通过 Docker.

安装 mariaDB 和 nextcloud

我在这里找到了教程:https://mariushosting.com/synology-how-to-install-nextcloud-using-docker/

在教程中我也使用了 portainer。

这是我的配置文件格式:

version: '2.9'

services:
  
  mariadb:
    container_name: mariadb
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - mariadb:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=rootpassword
      - MYSQL_PASSWORD=mysqlpassword
      - MYSQL_DATABASE=nextcloudatabasename
      - MYSQL_USER=nextclouduser

  nextcloud:
    container_name: nextcloud
    ports:
      - 40010:80
    links:
      - mariadb
    environment:
      - PUID=1024
      - PGID=100
      - TZ=Europe/Berlin
    volumes:
      - /volume1/docker/nextcloudStable/html:/var/www/html
      - /volume1/docker/nextcloudStable/custom_apps:/var/www/html/custom_apps
      - /volume1/docker/nextcloudStable/config:/var/www/html/config
      - /volume1/docker/nextcloudStable/data:/var/www/html/data
      - /volume1/docker/nextcloudStable/themes:/var/www/html/themes/
    image: nextcloud
    restart: always

volumes:
  mariadb: # nextcloud

部署后在NAS的IP下也得到了nextcloud的安装页面:http://192.168.1.10:40010/

我输入 mariadb 作为主机并收到以下错误消息:

Error while trying to create admin user: 
Failed to connect to the database: An exception occurred in driver: 
SQLSTATE[HY000] [1045] Access denied for user 'nextclouduser'@'172.17.0.7' (using password: YES) 

有人可以向我解释为什么会出现错误以及我该如何解决它。

非常感谢

首先我用 Portainer 设置了我的容器。这里我登录了mariaDB容器,手动设置了PW

mysql -u root -p
SET PASSWORD FOR 'nextclouduser'@'%' = PASSWORD('X123');

我还尝试使用 docker-compose.yml 文件和 docker-compose up -d 命令进行部署。无需手动设置 PW。

下面对我有用,只需在 portainer 中将其作为堆栈即可

version : '3.8'

volumes:
  nextcloud:
  db:
  
services:
  db:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed

    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=pass
      - MYSQL_PASSWORD=passt
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      
      
  cloud:
      image: nextcloud
      restart: always
      ports:
        - 8888:80
      links:
        - db
      volumes:
        - nextcloud:/var/www/html
      environment:

      - MYSQL_PASSWORD=pass
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db