【微服务从入门到精通】:(二)构建微服务到Docker镜像-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

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

简介: 如果单纯得做微服务开发,虽然也可以通过传统得脚本,或者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服务器,建议使用第一个脚本。当然也可以自己增减内容。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章