正在加载今日诗词....

wekan电子看板搭建

wekan电子看板搭建需要先创建数据库容器,然后再将wekan容器链接到mongo容器上。如果要保持电子看板数据,还需要映射容器的/data目录。

创建mongo数据库容器

1
docker run -d --restart=always --name wekan-db -v /volume3/docker/wekan/db:/data/db mongo:6.0.20

创建wekan容器,目前最新版容器有空白首页bug,需要指定版本为7.81.

1
docker run -d --restart=always --name wekan --link "wekan-db:db" -e "WITH_API=true" -e "MONGO_URL=mongodb://db" -e "ROOT_URL=http://10.139.27.3:2025" -p 2025:8080 -v /volume3/docker/wekan/data:/data wekanteam/wekan:v7.81

参数意思是链接上面mongo容器并映射wekan主页端口地址为2025(默认8080)

wekan的数据存储映射到宿主机,注意默认情况下回因为/data映射到宿主机的挂载文件夹权限问题导致容器不断重启,需要做如下操作:即在宿主机上对映射目录修改权限。实际操作宿主机地址目录地址为/volume3/docker/wekan/data

1
chown -R 999:999 /path/to/data/on/host
  • chown: 修改文件/目录的所有权。

  • -R: 递归操作(修改目录及其子目录/文件的所有权)。

  • 999:999: 将所有权设置为用户 ID (UID) 999 和组 ID (GID) 999

  • /path/to/data/on/host: 宿主机上的某个目录路径。

  • 容器内的用户身份
    许多 Docker 容器(尤其是官方镜像,如 PostgreSQL、Redis 等)默认以非 root 用户运行进程,例如使用 UID/GID 9991000。这是出于安全考虑,避免容器进程以 root 权限运行。

  • 挂载目录的权限问题
    如果通过 bind mountvolume 将宿主机目录挂载到容器中,容器内的进程需要对该目录有读写权限。但宿主机和容器共享相同的 UID/GID 数字标识(即使用户名不同),因此:

    • 如果宿主机目录的 UID/GID 与容器内进程的 UID/GID 不匹配,容器会因权限不足而报错。
    • 通过 chown 999:999 强制将宿主机目录的权限匹配容器内的用户身份,即可解决权限问题。
作者

fei

发布于

2025-03-04

更新于

2025-03-04

许可协议

评论