如何配置docker-compose.yml部署passbolt?启动后无法访问如何解决
问题排查与解决方案
1. WSL2端口映射与占用排查
- 先在WSL2终端执行
ss -tulpn | grep -E ':(80|443)'确认端口是否被Docker进程正常监听,若无0.0.0.0:80/443的监听记录,优先排查端口占用问题。 - 检查Windows侧端口占用:打开Windows CMD执行
netstat -ano | findstr :80,如果有返回结果说明80端口被IIS、Windows自带Web服务等其他进程占用,可停止占用进程,或修改docker-compose.yml的端口映射规则,例如改为- 8080:80、- 8443:443,修改后重启容器即可。 - 若需要从局域网其他设备访问,需手动配置Windows端口转发:管理员身份打开CMD执行
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=80 connectaddress=<WSL2内网IP> connectport=80,WSL2内网IP可在WSL终端执行ip a show eth0查看inet字段获取。 - 若切换为非root版本的Passbolt镜像,需同步修改端口映射为80映射到8080、443映射到4433,否则也会出现访问失败问题。
2. Passbolt容器内部运行状态排查
- 执行
docker logs passbolt查看容器启动日志,排查是否存在数据库连接异常、GPG密钥生成失败、配置读取错误等报错,常见问题包括passbolt.env与mysql.env的数据库配置不一致、缺少必填环境变量。 - 进入容器验证内部服务可用性:执行
docker exec -it passbolt bash进入容器后,运行curl 127.0.0.1:80,若能正常返回HTML内容说明容器内部服务正常,问题出在外部端口映射环节;若返回报错则需根据日志提示修复配置问题。
3. Passbolt配置校验
- 检查env/passbolt.env文件中的
APP_FULL_BASE_URL参数,需与实际访问地址保持一致,本地测试可填http://localhost或https://localhost,配置错误会导致访问跳转异常。 - Passbolt默认生成自签名HTTPS证书,浏览器会提示风险,可选择手动信任证书,或调整配置使用HTTP访问,避免证书拦截导致的无法访问问题。
内容的提问来源于stack exchange,提问作者Milan
相关产品推荐
相关产品推荐

