首页 > 其他分享 >单服务器部署CTFd+whale踩坑

单服务器部署CTFd+whale踩坑

时间:2022-11-12 23:24:15浏览次数:70  
标签:compose network -- frp ctfd CTFd 服务器 whale docker

单服务器部署CTFd+whale踩坑

环境:

os: ubuntu16

Docker: Version: 20.10.7

Docker-compose: version v2.12.1

参考:

https://www.zhaoj.in/read-6333.html/comment-page-1#_Direct_Frp

详细步骤:

创建集群:

docker swarm init --advertise-addr $your_machine_ip

标记节点:

docker node ls #检查节点 ID
docker node update --label-add name=linux-1 <节点 ID>

one step:
docker node update --label-add name=linux-1 $(docker node ls -q)

下载代码:

git clone -b single https://github.com/glzjin/CTFd.git

配置:

cd CTFd
vi frp/frps.ini # token 一定要随机
vi frp/frpc.ini # token 一定要随机
#(这个token我没改,最后成功搭起来了,不知道赵总的随机是啥意思)
git submodule update --init
docker-compose up -d

docker-compose up -d开始踩坑了,一开始先是报错是找不到python和python-dev,这个改Dockerfile就好

python  ->  python3
python-dev  ->  python3-dev

然后docker-compose up -d还是报错,如下:

Error response from daemon: Could not attach to network ctfd_frp_containers: rpc error: code = PermissionDenied desc = network ctfd_frp_containers not manually attachable

上网查了查,要加上--attachable参数来启动network,要先删除这个network再启动一次,命令如下:

docker network rm ctfd_frp_containers
docker network create --driver overlay --attachable ctfd_frp_containers

接下来再执行docker-compose up -d,第3+n个坑出现了,ctfd容器死活起不来,一直restarting,但是可能不同的操作系统坑不同,所以以下报错也可能不会出现在其他版本的操作系统上,docker logs $容器id或者名字查看报错

1.
ImportError: cannot import name 'escape' from 'jinja2' (/usr/local/lib/python3.7/site-packages/jinja2/__init__.py)
2.
ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/local/lib/python3.7/site-packages/markupsafe/__init__.py)
3.
ValueError: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 144 from C header, got 40 from PyObject

调试过程过于繁琐,就不详细写了,查询报错原因发现主要是pip下载库版本有问题,然后对照官方的git仓库来修改赵总git里的requirements.txt,加了几个库最后就可以成功起ctfd容器了,最终requirements.txt如下:

Flask==1.1.2
Werkzeug==0.16.0
Flask-SQLAlchemy==2.4.1
Flask-Caching==1.4.0
Flask-Migrate==2.5.2
Flask-Script==2.0.6
SQLAlchemy==1.3.11
SQLAlchemy-Utils==0.36.0
passlib==1.7.2
bcrypt==3.1.7
six==1.13.0
itsdangerous==1.1.0
jinja2==2.11.3
requests>=2.20.0
PyMySQL==0.9.3
gunicorn==19.9.0
normality==2.0.0
dataset==1.1.2
mistune==0.8.4
netaddr==0.7.19
redis==3.3.11
datafreeze==0.1.0
gevent==21.12.0
python-dotenv==0.10.3
flask-restplus==0.13.0
pathlib2==2.3.5
flask-marshmallow==0.10.1
marshmallow-sqlalchemy==0.17.0
boto3==1.10.39
markupsafe==1.1.1
marshmallow==2.20.2

记得先把container和images删了再重新运行docker-compose up -d,不然还是运行不了,然后就照着赵总博客设置就行,本文主要介绍搭建时遇到的问题,搭建操作详情见赵总的博客或者其他师傅的博客。

标签:compose,network,--,frp,ctfd,CTFd,服务器,whale,docker
From: https://www.cnblogs.com/FrenkyFu/p/16885003.html

相关文章

  • 给大家推荐一个云服务免费申请虚拟主机和免费云服务器地址
    给大家推荐一个云服务免费申请虚拟主机和免费云服务器地址1.输入  https://www.abeiyun.com  2.搜索  百度搜 阿贝云3.可以免费申请虚拟主机和免费云服务器,非......
  • 深入浅出学习透析Nginx服务器的基本原理和配置指南「初级实践篇」
    什么是Nginx?Nginx(EngineX)是一个轻量级的Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器、高性能的HTTP服务器,它以高稳定性、丰富的功能集、示例配置文件和......
  • 判断NFS服务器挂了或者离线问题
    判断NFS服务器挂了或者离线问题NFS服务器挂了会导致挂载的NFS客户端主机卡顿延迟,或者提示找不到文件因为在执行一些命令的时候会自动去同步,用作同步的NFS服务端挂了,命令......
  • 银河麒麟服务器V10-SP2安装tomcat
    1.首先先去tomcat官网下载一个安装包  2.创建一个存放压缩包的文件夹,并考入文件  3.解压tomcat压缩包命令:tar-xvf压缩包名   4.启动tomcat进入apache-......
  • 服务器
    服务器点击查看代码1、介绍服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。服......
  • 传奇三开服教程——传三服务器的架设和设置详细介绍
    我们想要把传奇3.0架设出来就需要先把一些架设的基础信息搞清楚,只有先把这些基础弄清楚我们在架设的时候就能够有成效,因为我们要是连基础的设置都没有搞好就去弄一些深层次......
  • VOIP服务器配置
    ​工具:trixbox-2.6.2.2  Linux虚拟机(VMware)虚拟光驱(DaemonToolsLite)过程:一.安装VMware,并装好Linux操作系统(redhat),同时安装虚拟光驱.当然直接安装在单......
  • 解决服务器I/O过高的问题
    问题缘起:当我习惯性地用top查看任务运行状态时,发现我运行的100个任务,只有3个在运行,其他都在摸鱼状态。同时发现我的任务进程都是"D"状态(未截图),而不是R(运行)状态。1.top......
  • linux服务器中JDK的安装和配置
    目录​​一、安装配置过程如下:​​​​1.新建jdk文件夹(/usr/local/jdk)​​​​2.将jdk.tar.gz包解压到jdk文件夹下​​​​ 3.jdk包解压后​​​​4.进入JDK环境变量添加......
  • node08_01使用express创建最基本的服务器
    Express:基于 Node.js 平台,快速、开放、极简的Web开发框架。文档:https://www.expressjs.com.cn/下载:$npminstallexpress--save//1.导入expressconstexpres......