连接到 Synology Container Manager 上相邻容器中的 Mariadb

问题描述 投票:0回答:1

我正在使用 Synology Container Manager。我只有两个容器。一种使用 ProjectSend,另一种使用 Mariadb。两个容器都已启动并正在运行(根据容器管理器)。

首次从 Firefox 访问 ProjectSend 时,您必须将 ProjectSend 连接到其数据库。有一个“检查”按钮,一旦一切通过,您就可以继续并开始使用 ProjectSend。

问题是我无法连接。

ProjectSend 的“数据库配置”GUI 检查主机、数据库名称、用户名和密码。这些都没有得到证实。我正在努力获得所有绿色支票。

enter image description here

使用 SSH,我从另一台 PC 访问了 Synology,然后是 Container,最后是 MariaDB 本身。我可以使用 SSH 与 Mariadb 交互。由于我有限的知识和大量的网络研究,我对一些事情提出了疑问。看来我的用户帐户(其中两个:root 和另一个)都在那里,它们都被标记为 %,我将其解释为意味着这些用户,如果密码正确,可以从任何地方进入 Mariadb。

我还在我的撰写文件中包含了以下命令: --default-authentication-plugin=mysql_native_password

为了告诉 MariaDB 接受 SHA1 密码,这显然是 ProjectSend 所需要的。我还以 root 身份登录数据库时直接通过 SSH 执行了此命令。

从红色复选标记看来,ProjectSend 甚至无法找到主机,更不用说进行身份验证了。我已经为主机字段尝试了各种东西,包括 localhost、Mariadb 容器的 IP、MariaDB,再加上所有这些都附加了 :3306 端口,只是为了笑。

Synology Container Manager 创建了一个名为“projectsend_default”的网络,并且两个容器都包含在该使用 172.17.X.X 的“网络”中。

用于创建容器的两个映像都是映像注册表中的“最新”映像,并且安装似乎都没有问题(错误代码 = 0)。

我已经停止并启动了容器。我先启动 MariaDB,等了几分钟,然后启动 ProjectSend。

有人知道为什么其容器内的 ProjectSend 看不到相邻容器中的 MariaDB 吗?

提前非常感谢。

COMPOSE...(密码更改为x)

version: "2.1"
services:
  projectsend:
    image: linuxserver/projectsend
    container_name: projectsend
    environment:
      - PUID=998
      - PGID=100
      - TZ=America/Denver
      - MAX_UPLOAD=5000
    volumes:
      - /volume1/docker/projectsend/config:/config #Config Volume Goes Here
      - /volume1/docker/projectsend:/data #File Storage Volume Goes Here
    ports:
      - 8010:80
    restart: unless-stopped
  db:
    image: mariadb
    container_name: mariadb-projectsend
    environment:
      MYSQL_ROOT_PASSWORD: xxxxxxx
      MYSQL_DATABASE: projectsend
      MYSQL_USER: user
      MYSQL_PASSWORD: xxxxxxx
      TZ: America/Denver
    volumes:
      - /volume1/docker/projectsend/mariadb:/var/lib/mysql #Database Volume Goes Here
    ports:
      - "3306:3306"  
    command: --default-authentication-plugin=mysql_native_password   
    restart: unless-stopped
docker docker-compose mariadb containers synology
1个回答
0
投票

通过使用 compose.yml 示例,用命名卷替换路径配置,我只需要输入

mariadb-projectsend
作为主机名。容器主机名可由撰写文件中的其他节点访问。

compose.yml 更改:

    volumes:
      - psconfig:/config #Config Volume Goes Here
      - psdata:/data #File Storage Volume Goes Here
....
    volumes:
      - dbdata:/var/lib/mysql #Database Volume Goes Here
...
volumes:
  psdata:
    driver: local
  psconfig:
    driver: local
  dbdata:
    driver: local
© www.soinside.com 2019 - 2024. All rights reserved.