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

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 如果单纯得做微服务开发,虽然也可以通过传统得脚本,或者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服务器,建议使用第一个脚本。当然也可以自己增减内容。

目录
相关文章
|
7天前
|
Ubuntu 应用服务中间件 nginx
docker入门-快速学会docker
本文介绍了Docker的基本概念,包括镜像、容器、tar文件、Dockerfile和仓库,并通过实际操作演示了如何使用Docker。从拉取Nginx镜像、运行容器、修改容器内容、保存容器为新镜像,到使用Dockerfile构建自定义镜像,最后讲解了如何保存和恢复镜像。文中还推荐了一个在线实践平台Play with Docker,方便读者快速上手Docker。
34 4
docker入门-快速学会docker
|
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编排微服务
85 6
|
23天前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
43 9
|
22小时前
|
NoSQL Java Linux
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、DockerFile常用保留字指令、案例、小总结
107 74
|
25天前
|
Kubernetes Cloud Native 开发者
云原生入门:从容器到微服务
本文将带你走进云原生的世界,从容器技术开始,逐步深入到微服务架构。我们将通过实际代码示例,展示如何利用云原生技术构建和部署应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和启示。
|
1月前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
1月前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
1月前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
1月前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?