尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

java-reader DevOps篇:Docker/Docker-compose部署与Jenkins自动化打包,工程师提效必备

java-reader DevOps篇:Docker/Docker-compose部署与Jenkins自动化打包,工程师提效必备 java-reader DevOps篇Docker/Docker-compose部署与Jenkins自动化打包工程师提效必备【免费下载链接】java-readerJava工程师学习历程与笔记附含算法、Java基础、框架实战、框架源码、框架实现、中间件、面试题等知识和学习蓝图。项目地址: https://gitcode.com/gh_mirrors/ja/java-reader如果你是一名 Java 工程师一定体会过反复搭建环境、手动打包部署的枯燥。开源项目java-readerJava 工程师学习历程与笔记收录了 300 多篇原创学习文章其中 DevOps 方向的实战笔记正好能帮你快速上手用Docker一键拉起服务、用Docker-Compose编排多容器应用、用Jenkins实现自动化打包与部署大幅节省交付时间。这篇指南带你速通 java-reader 中的 DevOps 核心笔记适合新手照着走一遍即可完成一套最小可用的部署链路。1. 为什么 Java 工程师需要掌握 Docker 部署传统部署方式要手动装 JDK、Tomcat、MySQL环境不一致、迁移成本高。而容器化的好处非常直接环境一致开发、测试、生产跑同一个镜像告别在我机器上是好的秒级启停docker run一条命令拉起服务重启、扩容都很快可重复部署镜像即交付物配合 Jenkins 可实现无人值守发布对应笔记Docker 安装、Docker 常用命令总结。2. Docker 部署快速上手2.1 安装与启动 Docker以 CentOS 7 为例一条命令即可完成安装yum -y install docker-io # 或使用官方安装脚本 service docker start # 启动 Docker 服务 docker version # 查看版本 小建议如果想用普通用户操作容器可将用户加入 docker 组避免每次都敲sudo。2.2 镜像拉取与容器操作高频命令场景命令拉取镜像docker pull centos:7.0后台运行容器docker run -d -p 8080:8080 tomcat查看运行容器docker ps跟踪查看日志docker logs -f 容器ID进入容器内部docker exec -it 容器ID bash停止容器docker stop 容器ID几个高频参数记住即可-d后台运行、-p端口映射、-v目录挂载挂载配置文件和日志目录是生产环境的常规操作、--name给容器起个好认的名字。2.3 配置镜像加速器解决拉取慢国内服务器直接拉取官方镜像常常超时编辑/etc/docker/daemon.json添加镜像源即可{ registry-mirrors: [https://wghlmi3i.mirror.aliyuncs.com] }然后执行systemctl daemon-reload systemctl restart docker生效。对应笔记Docker-实现阿里云加速。2.4 搭建私有镜像仓库团队内部加速 push/pull两种主流方案Registry官方镜像一条命令docker run -d -p 5000:5000 --restart always --name registry registry:2就能跑起来缺点是无可视化管理Harbor带用户管理、操作记录、Web 界面适合团队使用安装脚本会自动用 docker-compose 拉起一整套组件对应笔记Docker-搭建私有仓库RegistryHarbor、Docker-上传镜像拉取镜像。3. Docker-Compose一个 YAML 编排整套服务多容器项目应用 MySQL Redis逐个docker run很容易乱Docker-Compose 用一个docker-compose.yml描述全部服务一条命令启停。3.1 安装 docker-composesudo curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose docker-compose --version # 验证安装3.2 一键部署 MySQL 的完整配置示例version: 3 services: mysql: restart: always image: mysql container_name: mysql ports: - 3306:3306 environment: TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD: 123456 command: --character-set-serverutf8mb4 --collation-serverutf8mb4_general_ci --lower_case_table_names1 --max_allowed_packet128M volumes: - mysql-data:/var/lib/mysql volumes: mysql-data:执行docker-compose up -d后 MySQL 就跑起来了重启机器也会因restart: always自动恢复。3.3 其他常见服务的 Compose 部署java-reader 中还提供了几套可直接改用的编排文件 Tomcat端口映射 8080 挂载 webapps 目录详见 docker-compose部署tomcat RabbitMQ配合 SpringBoot 消息队列实战详见 docker-compose安装rabbitMQ GitLab中文版镜像 内存调优参数小内存机器必改详见 docker-compose部署gitlab中文版4. Jenkins 自动化打包代码提交即部署4.1 安装与启动 JenkinsJenkins 本质是个 war 包有 JDK 就能跑java -jar jenkins.war httpPort8888 # 自定义 8888 端口浏览器访问后按向导操作输入初始密钥在启动日志中给出→ 安装推荐插件 → 创建管理员账号全程 Next 即可。4.2 配置全局工具JDK 与 Maven进入系统管理 → 全局工具配置分别添加 JDK 和 Maven 路径。这样构建 Job 时才能编译 Java 项目。 经验之谈建议在本地部署 Jenkins 打包再把产物上传到服务器。Jenkins 部署在弱网服务器上容易出现 Maven 依赖下载失败还得搭 Maven 私服得不偿失。4.3 配置邮件通知进入系统管理 → 系统设置填写管理员邮箱再配置 SMTP 扩展构建成功或失败都能第一时间收到邮件提醒对应笔记Jenkins-实现自动化打包及邮件通知。4.4 创建构建任务新建 Freestyle 项目填写 Git 仓库地址 → 配置触发构建代码推送即触发→ 构建步骤执行mvn clean package点构建即可看到完整日志。5. 自动上传产物Publish over SSH 插件打包完成后再装Publish over SSH插件插件管理搜索安装系统设置中配置服务器地址、SSH 密钥点测试通过工程配置中填写要上传的文件如target/*.war和服务器端执行的脚本如重启应用这样每次构建成功后产物自动被推送到目标服务器并触发重启整条链路无需人工介入。对应笔记Jenkins-实现本地资源ssh上传。6. 避坑清单与学习路径⚠️ 几个笔记里记录过的真实坑Harbor 默认占用 80 端口被占用时改docker-compose.yml中映射端口即可GitLab 太吃内存4G 内存机器记得调小unicorn进程数、数据库缓存与 sidekiq 并发数删除镜像报 conflict先docker rm掉占用它的容器再删镜像建议的学习顺序先通读 Docker-安装 与 Docker-常用命令总结把命令练熟再用 docker-compose安装 搭建一套 MySQL Tomcat最后配置 Jenkins-实现自动化打包及邮件通知打通提交代码 → 自动打包 → 邮件通知闭环Docker Docker-Compose Jenkins 这套组合拳是每个 Java 工程师交付效率的必修课。跟着 java-reader 里的 DevOps 笔记动手做一遍你会收获一条真正属于自己的自动化部署流水线 【免费下载链接】java-readerJava工程师学习历程与笔记附含算法、Java基础、框架实战、框架源码、框架实现、中间件、面试题等知识和学习蓝图。项目地址: https://gitcode.com/gh_mirrors/ja/java-reader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表