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/GID999
或1000
。这是出于安全考虑,避免容器进程以 root 权限运行。挂载目录的权限问题
如果通过bind mount
或volume
将宿主机目录挂载到容器中,容器内的进程需要对该目录有读写权限。但宿主机和容器共享相同的 UID/GID 数字标识(即使用户名不同),因此:- 如果宿主机目录的 UID/GID 与容器内进程的 UID/GID 不匹配,容器会因权限不足而报错。
- 通过
chown 999:999
强制将宿主机目录的权限匹配容器内的用户身份,即可解决权限问题。
wekan电子看板搭建