首页 > 解决方案 > docker-compose 将teampeak数据目录挂载为卷的问题

问题描述

我正在尝试启动一个 teampeak 容器并将 sqlite 文件安装到主机上。我使用全新安装的 docker 引擎和 docker-compose。我还没有完成安装后设置来以非 root 用户 ( docs ) 运行 docker。/opt/ts3server/sql/这就是为什么当我将 TS 数据文件夹( docs ) 挂载到我的主机系统时我认为我有问题的原因。该./teamspeak/文件夹拥有根目录,但我也为每个人提供了 rwx。

码头工人-compose.yaml:

version: '3'
services:
  teamspeak:
    user: root
    image: teamspeak
    restart: always
    ports:
      - 9987:9987/udp
      - 10011:10011
      - 30033:30033
    volumes:
      - ./teamspeak/:/opt/ts3server/sql/
    environment:
      TS3SERVER_LICENSE: accept

teampeak 的错误日志:

teampeak_1 | 2019-10-25 20:18:33.827157|信息|ServerLibPriv | | TeamSpeak 3 服务器 3.9.1 (2019-07-02 13:17:23)

teampeak_1 | 2019-10-25 20:18:33.827272|信息 |ServerLibPriv | |系统信息:Linux 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20) x86_64 二进制:64bit

teampeak_1 | 2019-10-25 20:18:33.827300|信息 |ServerLibPriv | |使用硬件AES

teampeak_1 | 2019-10-25 20:18:33.827484|INFO |数据库查询 | |db插件名称:SQLite3 插件,版本 3,(c)TeamSpeak Systems GmbH

teampeak_1 | 2019-10-25 20:18:33.827513|INFO |数据库查询 | |db插件版本:3.11.1

teampeak_1 | 2019-10-25 20:18:33.827614|INFO |数据库查询 | |检查数据库完整性(可能需要一段时间)

teampeak_1 | 2019-10-25 20:18:33.844497|关键|数据库查询 | |setSQLfromFile(file:properties_list_by_string_id.sql) 失败

当我设置除/opt/ts3server/sql/teampeak服务器之外的任何其他内容时。如何使挂载的卷对 teampeak 可读写?

标签: dockerdocker-composeteamspeak

解决方案


我假设您要挂载 TS3 服务器的数据目录。您安装的卷 ( /opt/ts3server/sql/) 用于存储创建数据库的 sql 脚本。

此变量控制 TeamSpeak 服务器查找 sql 文件的位置。默认为 /opt/ts3server/sql/。
-teampeak码头工人文档

相反,您希望将数据目录 ( /var/ts3server/) 挂载到主机系统:

version: '3'
services:
  teamspeak:
    user: root
    image: teamspeak
    restart: always
    ports:
      - 9987:9987/udp
      - 10011:10011
      - 30033:30033
    volumes:
      - ./teamspeak/:/var/ts3server/
    environment:
      TS3SERVER_LICENSE: accept

推荐阅读