【微服务从入门到精通】:(二)构建微服务到Docker镜像

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 如果单纯得做微服务开发,虽然也可以通过传统得脚本,或者Jinkens工具以脚本的方式进行CI/CD发布,但是相对于Docker镜像来讲,还不是最方便的,所以如果要做CI/CD,最好还是使用Docker镜像来发布。

如果单纯得做微服务开发,虽然也可以通过传统得脚本,或者Jinkens工具以脚本的方式进行CI/CD发布,但是相对于Docker镜像来讲,还不是最方便的,所以如果要做CI/CD,最好还是使用Docker镜像来发布。另外对于产品管理,版本控制,新旧版本同时运营,Docker镜像的优势更加明显。

对于开发人员来讲,只用学下Docker的基本使用知识,即可快速的构建Docker镜像,同时利用阿里云的镜像仓库,将微服务代码构建为Docker镜像,将变得极为简单:我们只用一个构建脚本即可完成。

使用标准得Maven构建一个Java微服务项目:

image

并将该项目放入标准Git库,在此我们可以使用阿里云的Git公共库,目前是免费的,非常方便。

可以看到,我们只用增加一个Dockerfile文件即可实现微服务构建为Docker镜像,不需要自己再用传统的Docker命令去Docker环境内编辑,打包镜像,推送到镜像库。也不需要使用SpringCloud的组件通过Pom来构建,这2钟传统的方式都有上手难度,也很容易出错。对于开发人员来讲,业务解耦和简单易用才是王道。

  1. 构建脚本一 Dockerfile_Jenkins

主要是针对使用PipeLine工具的构建:

FROM openjdk:alpine    //使用OpenJDK的镜像母版

RUN mkdir -p /opt/server   //创建工作目录
RUN mkdir -p /opt/logs   //创建日志目录

ENV TZ=Asia/Shanghai   //加入时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

WORKDIR /opt/server   //设定工作目录
ADD ./target /opt/server/    //将微服务Jar包添加到工作目录

RUN ls -ld *
RUN mvn clean install -Dmaven.test.skip  #由外部Jenkins进行构建

CMD ["java","-jar","config-0.0.1-SNAPSHOT.jar"]    //启动命令

2.构建脚本二 Dockerfile_Maven

主要是针对使用Docker构建环境进行构建:

FROM maven:3.5.4-jdk-8   //使用Maven的镜像母版

RUN mkdir -p /opt/server     //创建工作目录
RUN mkdir -p /opt/logs   //创建日志目录

ENV TZ=Asia/Shanghai    //加入时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

WORKDIR /opt/server    //设定工作目录
ADD . /opt/server   //将微服务Jar包添加到工作目录

RUN ls -ld *

RUN mvn package -Dmaven.test.skip   #由Maven进行构建
CMD ["java","-jar","target/config-0.0.1-SNAPSHOT.jar"]    //启动命令

这2个脚本都可以用,如果你使用了阿里云的镜像库,建议使用第二个脚本, 如果使用了自己的Jinkens服务器或第三方Jinkens服务器,建议使用第一个脚本。当然也可以自己增减内容。

目录
相关文章
|
1天前
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
112 75
|
23天前
|
Docker 容器
将本地的应用程序打包成Docker镜像
将本地的应用程序打包成Docker镜像
|
7天前
|
NoSQL PHP MongoDB
docker push推送自己搭建的镜像
本文详细介绍了如何搭建和复盘两个Web安全挑战环境:人力资源管理系统和邮件管理系统。首先,通过Docker搭建MongoDB和PHP环境,模拟人力资源管理系统的漏洞,包括nosql注入和文件写入等。接着,复盘了如何利用这些漏洞获取flag。邮件管理系统部分,通过目录遍历、文件恢复和字符串比较等技术,逐步绕过验证并最终获取flag。文章提供了详细的步骤和代码示例,适合安全研究人员学习和实践。
26 3
docker push推送自己搭建的镜像
|
12天前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
70 24
|
14天前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
88 6
|
23天前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
74 5
|
20天前
|
监控 安全 持续交付
构建高效微服务架构:策略与实践####
在数字化转型的浪潮中,微服务架构凭借其高度解耦、灵活扩展和易于维护的特点,成为现代企业应用开发的首选。本文深入探讨了构建高效微服务架构的关键策略与实战经验,从服务拆分的艺术到通信机制的选择,再到容器化部署与持续集成/持续部署(CI/CD)的实践,旨在为开发者提供一套全面的微服务设计与实现指南。通过具体案例分析,揭示如何避免常见陷阱,优化系统性能,确保系统的高可用性与可扩展性,助力企业在复杂多变的市场环境中保持竞争力。 ####
36 2
|
21天前
|
弹性计算 Kubernetes API
构建高效后端服务:微服务架构的深度剖析与实践####
本文深入探讨了微服务架构的核心理念、设计原则及实现策略,旨在为开发者提供一套系统化的方法论,助力其构建灵活、可扩展且易于维护的后端服务体系。通过案例分析与实战经验分享,揭示了微服务在提升开发效率、优化资源利用及增强系统稳定性方面的关键作用。文章首先概述了微服务架构的基本概念,随后详细阐述了其在后端开发中的应用优势与面临的挑战,最后结合具体实例,展示了如何从零开始规划并实施一个基于微服务的后端项目。 ####
|
关系型数据库 MySQL Java
12-微服务技术栈(高级):容器引擎Docker
在前面的学习中,我们掌握了微服务的服务注册与发现(nacos)、配置中心(nacos)、远程服务调用(feign)、网关(gateway),同时借助Idea编译工具多次完成本地服务启动、部署和验证。在微服务架构中,不会再像传统那样单个单个部署服务器,而是会借助Docker进行批量的容器化部署。
975 0