使用Docker Compose部署Artifactory 7 OSS无法切换至PostgreSQL数据库
解决Artifactory 7 OSS切换PostgreSQL数据库的问题
问题根源
你遇到的报错是因为系统仍在加载Derby驱动,说明PostgreSQL的配置未被正确识别,大概率是环境变量配置不完整,或是手动指定DB_URL触发了驱动匹配异常。
正确的环境变量配置
Artifactory 7 OSS切换PostgreSQL需要完整配置以下参数,替换你当前的部分配置:
environment: - DB_TYPE=postgresql - DB_USER=user - DB_PASSWORD=mypass - DB_HOST=postgresql-docker - DB_PORT=5432 - DB_NAME=database # 显式指定驱动类,强制跳过Derby驱动匹配 - DB_DRIVER=org.postgresql.Driver
注意:不要手动指定
DB_URL,Artifactory 7会根据DB_HOST/DB_PORT/DB_NAME自动生成符合规范的JDBC URL,自定义DB_URL容易导致驱动逻辑冲突。
必要前置操作
- 初始化PostgreSQL数据库:启动Artifactory前,确保PostgreSQL容器已创建
database库,且user账号拥有该库的全部权限。可通过PostgreSQL初始化脚本添加:CREATE DATABASE database; GRANT ALL PRIVILEGES ON DATABASE database TO user; - 确认网络连通性:保证Artifactory容器和PostgreSQL容器在同一Docker网络下,
postgresql-docker主机名能被正常解析。 - 清理Derby残留数据:若之前用Derby启动过Artifactory,需删除Artifactory的持久化数据卷(如挂载的
/var/opt/jfrog/artifactory目录),避免旧配置干扰。
验证成功标志
启动后查看Artifactory日志,出现类似以下内容则说明PostgreSQL连接成功:
PostgreSQL JDBC Driver connected successfully to database: database at host: postgresql-docker
内容的提问来源于stack exchange,提问作者King Midas
相关产品推荐
相关产品推荐

