赞
踩
1.安装docker-compose
请看:https://blog.csdn.net/weixin_43819222/article/details/90494083
2.克隆仓库
git clone https://github.com/wekan/wekan-mongodb.git
cd wekan-mongodb
3.拉取镜像并启动
docker-compose up -d
4.访问地址:http://localhost (port 80)
5.MongoDB地址:127.0.0.1:27017
6.Wekan和数据库绑定0.0.0.0地址,外网可访问。
重要的事情
你需要在导入MongoDB数据库之前使用下面的命令停止Wekan:
docker stop wekan-app
也要检查你的start-wekan.sh脚本或docker-compose.yml及其他类似文件是否有正确的MongoDB数据库姓名admin,wekan等,否则将会被清空。
Docker容器在/var/lib/docker
,它可能保存了很难恢复的重要数据。恢复mongodump文件要相对容易一些。相关的备份功能请求。对于备份来说,保存文件和目录权限很重要。
检查你的dockerfile或docker-compose.yml,MongoDB的容器名称是什么。可能叫wekan-db,mongodb或其他称呼.
docker run -d --restart=always --name wekan-db mongo:3.2.18
docker run -d --restart=always --name wekan-app --link "wekan-db:db" -e "MONGO_URL=mongodb://db" -e "ROOT_URL=http://localhost:8080" -p 8080:80 wekanteam/wekan:latest
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1234wekanid wekanteam/wekan:latest "/bin/sh -c 'bash $ME" About an hour ago Up 46 minutes 0.0.0.0:8080->80/tcp wekan-app
4321mongoid mongo "/entrypoint.sh mongo" About an hour ago Up 46 minutes 27017/tcp wekan-db
docker exec -it wekan-db bash
CLI
命令:比如:
> mongo <==== START MONGO CLI MongoDB shell version: 3.2.18 connecting to: test Server has startup warnings: 2016-06-25T11:39:55.913+0000 I CONTROL [initandlisten] 2016-06-25T11:39:55.913+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2016-06-25T11:39:55.913+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2016-06-25T11:39:55.913+0000 I CONTROL [initandlisten] 2016-06-25T11:39:55.913+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2016-06-25T11:39:55.913+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2016-06-25T11:39:55.913+0000 I CONTROL [initandlisten] > show dbs <=== SHOW DATABASES admin 0.034GB local 0.000GB > use admin <=== CHANGE TO USE ADMIN DATABASE switched to db admin > show collections <=== SHOWS TABLES activities boards card_comments cards cfs._tempstore.chunks cfs.attachments.filerecord cfs_gridfs._tempstore.chunks cfs_gridfs._tempstore.files cfs_gridfs.attachments.chunks cfs_gridfs.attachments.files esCounts lists meteor-migrations meteor_accounts_loginServiceConfiguration presences users > db.users.find() <=== LISTS ALL USERS (list of all users here) > exit <=== EXIT MONGO CLI
cd /
/dump
目录,仅包含wekan
名称的Wekan数据库,不包括本地数据库:mongodump -o /dump/
exit
/dump
拷贝到外面的目录:docker cp wekan-db:/dump
docker cp dump wekan-db:/data/
docker exec -it wekan-db bash
cd /data
mongorestore --drop --db wekan /data/dump/wekan/
exit
dbname可以是wekan,如:
mongorestore --drop --db wekan /data/dump/wekan/
mongorestore --port 11235
https://docs.mongodb.com/ecosystem/tools/administration-interfaces/
docker stop wekan-app wekan-db
docker rm wekan-app wekan-db
此时你可以根据step 1 重装它们。
13. 如果最新版Wekan的Docker镜像损坏了,这里可以教你怎么运行旧版本:
编辑下面的脚本以适应你自己的需求,它将删除超过7天的备份:
#!/bin/bash DATE=$(date +%Y-%m-%d-%H-%M) SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )" cd $SCRIPTPATH mkdir -p backups/$DATE docker ps -a | grep 'wekan-db' &> /dev/null if [ $? = 0 ]; then docker exec -t wekan-db bash -c "rm -fr /dump ; mkdir /dump ; mongodump -o /dump/" docker cp wekan-db:/dump $SCRIPTPATH/backups/$DATE tar -zc -f backups/$DATE.tgz -C $SCRIPTPATH/backups/$DATE wekan if [ -f backups/$DATE.tgz ]; then rm -fr backups/$DATE find $SCRIPTPATH/backups/ -name "*.tgz" -mtime +7 -delete fi else echo "wekan-db container is not running" exit 1 fi
恢复脚本
#!/bin/bash if [ $# -eq 0 ] then echo "Supply a path to a tgz file!" exit 1 fi SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )" DATE=$(date +%Y-%m-%d-%H-%M) docker ps -a | grep 'wekan-db' &> /dev/null if [ $? = 0 ]; then if [ -f $1 ]; then mkdir -p $SCRIPTPATH/backups/$DATE-restore tar -zx -f $1 -C $SCRIPTPATH/backups/$DATE-restore docker exec -t wekan-db bash -c "rm -fr /restore ; mkdir /restore" docker cp $SCRIPTPATH/backups/$DATE-restore/wekan wekan-db:/restore docker exec -t wekan-db bash -c "mongorestore --drop --db wekan /restore/wekan/" fi else echo "wekan-db container is not running" exit 1 fi
如果用户名或密码中包含特殊字符,你需要url格式编码它们。你可以用这个网站https://www.url-encode-decode.com转换密码中的特殊字符,在把转换后的字符复制到密码中。
如果你的email服务不需要如账号密码身份验证,请不要把它们包含在MAIL_URL中。比如IBM Notes就不需要账密验证。
如果通过MAIL_URL和MAIL_FROM环境变量来设置邮件配置。设置的方法则取决于你的安装方法,比如snap,或docker-compose.yml文件。
你可以选择不配置邮件服务,通过不提供MAIL_URL和MAIL_FROM环境变量。邮件消息将被发送到终端输出。更多信息请参见问题解答。
独立的Wekan使用SMTP服务来发生邮件邀请等。
对于Exchange,你可以使用DavMail,Wekan SMTP =>Davmail=>Exchange。
另一种方式是配置后缀通过NTLM验证转发到Exchange.
Wekan的邮件设置在MAIL_URL和管理面板中都需要配置。
如果你想接收Wekan的邮件,使用Huginn来从邮件服务器中接收邮件。
docker-compose.yml以smtp.qq.com为例:
telnet smtp.qq.com 25
网络是否联通MAIL_URL=smtp://账号:smtp授权码@smtp.qq.com:25/
MAIL_FROM=账号,如(xxxxxx@qq.com)
原文地址:https://github.com/wekan/wekan/wiki/Export-Docker-Mongo-Data
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。