Docker部署Dependency Track遭遇CORS问题求助
解决Dependency-Track Docker部署的CORS问题
1. 配置API容器的CORS参数
Dependency-Track的API服务本身支持CORS配置,需在docker-compose.yml的api服务节点中补充/确认以下环境变量:
- ALPINE_CORS_ENABLED=true(确保已取消注释)- ALPINE_CORS_ORIGINS=http://XXX.XXX.X.XXX:8080(完全匹配前端的访问地址,包括协议、IP、端口)- ALPINE_CORS_ALLOW_CREDENTIALS=true(若前端请求需要携带Cookie则开启)
注意:ALPINE_CORS_ORIGINS的值必须和前端页面的实际访问地址完全一致,不能多斜杠或拼写错误。
2. 检查前端容器的Nginx代理配置(可选)
如果前端通过Nginx反向代理访问API,需要修改nginx.conf的代理规则,添加CORS响应头:
location /api/ { proxy_pass http://api:8081/api/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 配置CORS响应头 add_header Access-Control-Allow-Origin http://XXX.XXX.X.XXX:8080; add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"; add_header Access-Control-Allow-Headers "Content-Type, Authorization"; add_header Access-Control-Allow-Credentials true; # 预请求直接返回204 if ($request_method = OPTIONS) { return 204; } }
修改后需重启前端容器让配置生效。
3. 确认API_BASE_URL配置无误
确保前端容器的API_BASE_URL设置为http://XXX.XXX.X.XXX:8081,和API服务的实际访问地址完全匹配,检查IP、端口是否有拼写错误。
4. 重启所有容器
修改配置后执行以下命令重启容器,确保所有配置加载生效:
docker-compose down docker-compose up -d
5. 验证CORS响应头
用浏览器开发者工具的「Network」标签查看/api/version请求的响应头,确认是否存在Access-Control-Allow-Origin且值与前端Origin匹配。若仍无该头,查看API容器日志,排查配置加载错误信息。
内容的提问来源于stack exchange,提问作者bernieslearnings
相关产品推荐
相关产品推荐

