DefectDojo项目Docker部署与开发环境搭建指南

DefectDojo项目Docker部署与开发环境搭建指南

django-DefectDojo ASPM, DevSecOps, Vulnerability Management. All on one platform. django-DefectDojo 项目地址: https://gitcode.com/gh_mirrors/dj/django-DefectDojo

前言

DefectDojo是一个开源的安全问题管理平台,采用Django框架开发。本文将详细介绍如何使用Docker Compose来部署和开发DefectDojo项目,涵盖从基础部署到高级开发调试的完整流程。

环境准备

系统要求

  • Docker版本要求至少19.03.0
  • Docker Compose版本要求至少1.28.0
  • 如果处于企业代理环境下,需要配置Docker代理设置

版本检查

使用以下命令检查当前Docker环境版本:

docker version
docker compose version

如果版本低于要求,需要先升级Docker环境。

基础部署

镜像构建

DefectDojo需要多个Docker镜像协同工作,主要包括:

  1. Django服务镜像(defectdojo-django)
  2. Nginx服务镜像(defectdojo-nginx)

建议先构建本地镜像以确保代码一致性:

docker compose build

也可以单独构建某个服务镜像:

docker compose build uwsgi  # 构建Django服务
docker compose build nginx  # 构建Nginx服务

启动服务

生产环境建议使用release模式:

docker/setEnv.sh release
docker compose up

开发环境建议使用dev模式,支持代码热更新:

docker/setEnv.sh dev
docker compose build
docker compose up

访问应用

服务启动后,可以通过以下方式访问:

  1. 浏览器访问:http://localhost:8080
  2. 初始管理员账号:admin
  3. 获取初始密码:
docker compose logs initializer | grep "Admin password:"

如需修改密码:

docker compose exec -it uwsgi ./manage.py changepassword admin

开发环境配置

热重载机制

开发模式下,系统配置了以下热重载功能:

  1. UWSGI容器:通过--py-autoreload 1参数实现Python代码热更新
  2. Nginx容器:静态资源修改后只需浏览器强制刷新(Ctrl+F5)
  3. CeleryWorker容器:暂不支持热更新,需手动重启:
docker compose restart celeryworker

权限问题处理

如果遇到挂载卷权限问题,可以修改Dockerfile.django中的USER设置,匹配本地用户ID:

USER your_user_id  # 替换为实际用户ID

获取用户ID命令:

id -u

远程调试配置

可以使用debugpy进行远程调试,配置方法参考Django调试文档。

高级配置

HTTPS支持

DefectDojo支持HTTPS部署,有两种方式:

  1. 使用自有证书:

    • 将私钥和证书放入nginx目录
    • 配置nginx_TLS.conf
    • 设置GENERATE_TLS_CERTIFICATE=False
    • 保护私钥权限:chmod 400 nginx/*.key
  2. 自动生成证书:

    rm -f docker-compose.override.yml
    ln -s docker-compose.override.https.yml docker-compose.override.yml
    docker compose up
    

默认HTTPS端口为8443,可通过修改nginx.conf和docker-compose.override.https.yml调整。

版本控制

可以指定特定版本构建和运行:

export NGINX_VERSION=x.y.z
export DJANGO_VERSION=x.y.z
docker compose build

数据库初始化控制

禁用数据库初始化(保留现有数据):

export DD_INITIALIZE=false

测试执行

单元测试

运行所有单元测试:

docker/setEnv.sh unit_tests
docker compose up

运行特定测试用例:

docker exec -it uwsgi /bin/bash
python manage.py test unittests.tools.test_dependency_check_parser --keepdb

集成测试

运行所有集成测试:

docker/setEnv.sh integration_tests
docker compose up

查看测试日志:

docker compose logs -f integration-tests

日志与调试

日志级别

  • release模式:INFO级别
  • 其他模式:DEBUG级别

可通过修改settings.dist.py或创建local_settings.py调整日志级别,例如:

LOGGING['loggers']['dojo.specific-loggers.deduplication']['level'] = 'DEBUG'

调试工具栏

可以启用Django Debug Toolbar,用于调试SQL查询等开发信息。

清理环境

停止并移除所有容器:

docker compose down

彻底清理(包括网络和数据库卷):

docker compose down --volumes

结语

本文详细介绍了DefectDojo项目的Docker部署和开发环境搭建方法,涵盖了从基础部署到高级调试的完整流程。通过合理使用这些配置,可以显著提高DefectDojo的开发效率和部署灵活性。

django-DefectDojo ASPM, DevSecOps, Vulnerability Management. All on one platform. django-DefectDojo 项目地址: https://gitcode.com/gh_mirrors/dj/django-DefectDojo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

解岭芝Madeline

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值