cfje/tomcat-resourceTomcat Concourse Resource是专为Concourse CI/CD流水线设计的资源类型,用于与Apache Tomcat服务器进行交互。它提供了在流水线中部署Java Web应用(WAR/EAR包)、检查应用状态、执行版本回滚等核心能力,旨在简化Java Web项目与Tomcat服务器集成的持续集成/持续部署(CI/CD)流程,提升流水线自动化程度。
在Concourse流水线配置(pipeline.yml)中,首先需定义Tomcat Concourse Resource的资源类型:
yamlresource_types: - name: tomcat-resource type: docker-image source: repository: [镜像仓库地址] # 例如:your-registry/tomcat-concourse-resource tag: latest # 或指定具体版本,如v1.0.0
定义具体的Tomcat资源实例,配置与目标Tomcat服务器的连接信息:
yamlresources: - name: prod-tomcat type: tomcat-resource source: tomcat_url: "[***]" # Tomcat服务器基础URL(含协议、主机、端口) username: "tomcat-admin" # Tomcat管理用户名(需具备manager-script角色) password: ((tomcat-password)) # Tomcat管理密码(建议通过Concourse Secrets管理) app_path: "/my-webapp" # 应用部署上下文路径(默认使用WAR包文件名,不含.war后缀) manager_path: "/manager" # Tomcat Manager应用路径(默认/manager,部分环境可能自定义)
source参数说明:
tomcat_url:必填,Tomcat服务器的基础访问URL(如[***])。username:必填,Tomcat管理用户,需在tomcat-users.xml中配置manager-script角色。password:必填,Tomcat管理用户密码,建议通过Concourse Secrets(如Vault、CredHub)引用,避免明文。app_path:可选,应用部署后的上下文路径(如/app),默认使用WAR包文件名(如myapp.war对应/myapp)。manager_path:可选,Tomcat Manager的访问路径,默认/manager(Tomcat默认配置),若自定义需修改。通过Concourse任务(Job)中的get(检查)和put(部署/回滚)步骤使用资源。
3.1 部署应用(put操作)
将构建产物(WAR包)部署到Tomcat服务器:
yamljobs: - name: deploy-to-tomcat plan: - get: webapp-source # 假设通过git/s3等资源获取源码或WAR包 trigger: true # 源码变更时触发部署 - task: build-war # 若需构建,可添加编译任务(如Maven/Gradle构建) config: platform: linux image_resource: type: docker-image source: {repository: maven, tag: 3.8.5-openjdk-11} inputs: [{name: webapp-source}] outputs: [{name: webapp-war}] run: path: sh args: - -c - | cd webapp-source mvn clean package -DskipTests cp target/*.war ../webapp-war/ - put: prod-tomcat # 部署到Tomcat params: war_path: webapp-war/*.war # WAR包在流水线工作目录中的路径(支持通配符) version: "${BUILD_ID}" # 可选,版本标识(如Concourse构建ID,用于版本跟踪)
部署参数(params):
war_path:必填,WAR包在流水线工作目录中的相对路径(支持*.war通配符匹配单个文件)。version:可选,自定义版本标识字符串(如构建号、Git Commit ID),用于后续回滚或状态检查。3.2 检查部署状态(get操作)
获取Tomcat上应用的当前状态(如版本、运行状态):
yamljobs: - name: verify-deployment plan: - get: prod-tomcat # 检查Tomcat应用状态 trigger: false # 不自动触发,需手动或通过上游任务触发 params: output_file: deployment-status.json # 可选,状态输出文件(默认deployment-status.json) - task: print-status # 打印状态信息(示例) config: platform: linux image_resource: type: docker-image source: {repository: alpine, tag: latest} inputs: [{name: prod-tomcat}] run: path: cat args: [prod-tomcat/deployment-status.json]
检查参数(params):
output_file:可选,指定状态输出文件路径(默认在资源目录下生成deployment-status.json),文件包含应用版本、部署时间、运行状态等信息。3.3 版本回滚(put操作)
回滚到Tomcat上的历史版本:
yamljobs: - name: rollback-tomcat plan: - put: prod-tomcat # 执行回滚 params: rollback: true # 启用回滚模式 target_version: "1234" # 需回滚到的版本标识(与部署时的version参数对应)
回滚参数(params):
rollback:必填,设为true启用回滚功能。target_version:必填,需回滚到的历史版本标识(必须是之前部署时通过version参数指定的值)。webapps/manager),并在conf/tomcat-users.xml中配置具备manager-script角色的用户,示例:
xml<role rolename="manager-script"/> <user username="admin" password="secure-password" roles="manager-script"/>
((secret-name))引用),禁止明文写入流水线配置。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务