Coldfusion 2021/2023 Docker环境添加SQL Server数据源提示包未安装
ColdFusion 2021/2023 Docker环境连接SQL Server数据源问题解决及版本差异
问题场景
在Windows机器上通过以下Docker Compose配置部署ColdFusion 2021与SQL Server 2019环境:
version: "3.7" services: sql: image: mcr.microsoft.com/mssql/server:2019-latest container_name: sql hostname: sql networks: - network ports: - "1433:1433" volumes: - "mssqldata:/var/opt/mssql" - "./data:/data" environment: - ACCEPT_EULA=Y - SA_PASSWORD=SQLS3rv3r - MSSQL_AGENT_ENABLED=true - MSSQL_PID=Express coldfusion: image: adobecoldfusion/coldfusion:latest-2021 container_name: coldfusion hostname: coldfusion networks: - network ports: - "80:8500" volumes: - "./app:/app" - "./data:/data" environment: acceptEULA: "YES" password: "C0ldFusi0n" enableSecureProfile: "false" healthcheck: test: curl -f http://localhost/ interval: 1m timeout: 3s depends_on: - sql volumes: mssqldata: networks: network:
在ColdFusion管理员界面添加SQL Server数据源时,出现以下错误:
java.sql.SQLException: The sqlserver package is not installed. You can install the package through the CLI package manager (/opt/coldfusion/cfusion/bin/cfpm.sh) by running the command : install sqlserver.
切换至ColdFusion 2018版本则无此问题,需明确2021/2023版本与2018版本的差异及解决办法。
版本核心差异
ColdFusion 2018及更早版本的官方Docker镜像默认预装了SQL Server的JDBC驱动包,而从2021版本开始,Adobe为精简镜像体积,将第三方数据库驱动(包括SQL Server、Oracle、MySQL等非内置驱动)从默认镜像中移除,改为通过ColdFusion Package Manager(CFPM)工具按需安装。
解决办法
方法1:进入容器手动安装
- 进入ColdFusion容器终端:
docker exec -it coldfusion /bin/bash - 执行SQL Server驱动安装命令:
/opt/coldfusion/cfusion/bin/cfpm.sh install sqlserver - 重启ColdFusion服务使驱动生效:
/opt/coldfusion/cfusion/bin/cfstart
方法2:修改Docker Compose实现自动安装
在coldfusion服务中添加command字段,实现容器启动时自动安装驱动并启动服务:
coldfusion: image: adobecoldfusion/coldfusion:latest-2021 container_name: coldfusion hostname: coldfusion networks: - network ports: - "80:8500" volumes: - "./app:/app" - "./data:/data" environment: acceptEULA: "YES" password: "C0ldFusi0n" enableSecureProfile: "false" healthcheck: test: curl -f http://localhost/ interval: 1m timeout: 3s depends_on: - sql command: > bash -c "/opt/coldfusion/cfusion/bin/cfpm.sh install sqlserver && /opt/coldfusion/cfusion/bin/cfstart"
修改配置后,重新启动容器:docker-compose up -d --force-recreate
内容的提问来源于stack exchange,提问作者csber3
相关产品推荐
相关产品推荐

