正文
容器化你的 Spring Boot 工程——Docker
原
荐
字数 498
阅读 4
收藏 0
Docker Spring Spring Boot Deploy
挑战A.I.,赢百万奖金......了解更多详情>>>
环境声明:
Gradle + Docker + Spring Boot 2.1.5.RELEASE
利用docker容器技术简化项目部署
apt-get install docker-ce
vim /etc/docker/daemon.json
{ "registry-mirrors": [ "https://kv3qfp85.mirror.aliyuncs.com" ] }
vim /lib/systemd/system/docker.service 修改如下内容 #ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
systemctl daemon-reload sudo service docker restart
parent build.gradle ...... buildscript { ...... dependencies { ...... classpath('gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.19.2') } } ...... subprojects { ...... apply plugin: 'application' apply plugin: 'com.palantir.docker' ...... jar { enabled = true } bootJar { classifier = 'boot' } }
FROM openjdk:8-jdk-alpine VOLUME /tmp ADD build/libs/*-boot.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
为了方便查看(当然不这样做也是可以的),假设我的项目是多模块架构,项目名为 demo,现在为我的子模块model1构建和部署镜像
最下边Command preview也就是原生的Docker构建镜像的命令:
docker build -t demo/model1:v1 . && docker run -p 8061:8061 --name demo-model1-container demo/model1:v1
Deploy log:
Deploying 'demo-model1-container Dockerfile: model1/Dockerfile'... Building image... Step 1/6 : FROM openjdk:8-jdk-alpine ---> a3562aa0b991 Step 2/6 : VOLUME /tmp ---> Using cache ---> 0ccc6c4dcc3f Step 3/6 : ADD build/libs/*-boot.jar app.jar ---> Using cache ---> 999503a5bf26 Step 4/6 : RUN sh -c 'touch /app.jar' ---> Using cache ---> d99dd527cb5b Step 5/6 : ENV JAVA_OPTS="" ---> Using cache ---> 468e80ce7f62 Step 6/6 : ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ] ---> Using cache ---> d8d32a964e71 Successfully built d8d32a964e71 Successfully tagged demo/model1:v1 Creating container... Container Id: 0f91b3f38e771cb1288fb7b01451aeeef917d83f4f2fbe803a65a091684a7430 Container name: 'demo-model1-container' Attaching to container 'demo-model1-container'... Starting container 'demo-model1-container' Failed to deploy 'demo-model1-container Dockerfile: data-collect-server/Dockerfile': com.github.dockerjava.api.exception.InternalServerErrorException: {"message":"driver failed programming external connectivity on endpoint demo-model1-container (10fcfb5d05feffb40b75715b531c7504a8ee7262c2af43b642d2202e9e3f4b31): Bind for 0.0.0.0:8061 failed: port is already allocated"}
示例项目: gradle-docker
© 著作权归作者所有
打印
上一篇: JVM内存模型——JAVA的根基
下一篇: 造个小轮子——实体类和JPA接口的逆向生成(基于Groovy)
粉丝 7
博文 9
码字总数 15578
作品 0
昌平
程序员
提问加载中
53分钟前
学习了
删除一条评论
评论删除后,数据将无法恢复
取消
确定
相关文章 最新文章
spring-boot项目的docker集成化部署(二)--springboot的mysql项目 [toc] 补充使用maven构建操作流程 1、配置基本的环境 全局工具配置—配置Java、maven、git基本工具(注意:按照自己的路径...
weir_will
03/25
0
0
背景 最近在了解Docker的使用,发现docker在集群部署方面和运维方面有比较大的优势,通过统一的依赖关系,以镜像的方式,将已经打好包的镜像文件,部署到各个节点。如果不用考虑集群的同学,...
亚林瓜子
2018/11/09
0
0
第 III 部分Spring Boot 系统监控、测试与运维 Spring Boot 应用监控:Actuator与 Admin 《Spring Boot 实战开发》(陈光剑) —— 基于 Gradle + Kotlin的企业级应用开发最佳实践 在企业级应用...
程序员诗人
2018/04/17
0
0
对于本教程,您将拥有一个Docker化Spring-Boot实例程序,该应用程序与MongoDB通信以获取GET/POST API请求,并部署在Kubernetes集群中。 前提条件 Minikube Kubectl Docker Maven Docker是一个...
Docker
01/11
0
0
Docker是开发者的开放平台,它是一个机制,通过将每个应用程序打包到容器中来隔离依赖关系。容器是可扩展的,可更安全的使用和部署。Docker容器能够共享一个内核并共享应用程序库,因此容器比...
RaiseHead
2018/05/30
0
0
没有更多内容
加载失败,请刷新页面
加载更多全文共6661字,预计学习时长20分钟或更长 图片来源:pexels.com/@divinetechygirl 在现代数字世界中,数据就像空气一样重要。 人们每天都会自觉或不自觉地消费和产生大量数据。近来,许多商家...
读芯术
36分钟前
3
0
console.info(Bytes2Str([16,66,108,-27,2,-108])) function Bytes2Str(arrBytes){var str = "";for (var i = 0; i < arrBytes.length; i++) {var tmp;var num = arrBytes[i]......
Cyoya
37分钟前
2
0
// 1.需要引入的包 import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ......
kuchawyz
38分钟前
2
0
一、首先创建一个数据库和表 这里创建了一个表,加上了测试数据,注意这里有一个字段来记录更新时间 update_date 二、修改配置文件 我们首先介绍全量同步,再介绍增量同步 我的 solr 版本是 ...
嘴角轻扬30
40分钟前
2
0
sortChangeFn({ column, prop, order }){ if(order == "ascending"){ this.sortNum=1; }else if(order == "descending"){ this.sortNum=2; }else{......
mubail
43分钟前
2
0
没有更多内容
加载失败,请刷新页面
加载更多