springboot容器化打包部署_使用docker容器化部署SpringBoot项目

环境

安装docker、docker-compose的宿主机,开启docker远程访问,开放远程访问端口

构建一个SpringDemo

Controller

@RestController

public class UserController {

@GetMapping("/login")

public String login() {

return "docker login success!!";

}

}

Main

@SpringBootApplication

public class DockerApplication {

public static void main(String[] args) {

SpringApplication.run(DockerApplication.class, args);

}

}

log4j2日志配置

filePattern="/home/logs/reduceinfo/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log"

name="RollingFileInfo">

filePattern="/home/logs/reduceerror/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log"

name="RollingFileError">

application.yml

server:

port: 8080

添加docker-maven插件依赖

com.spotify

docker-maven-plugin

1.1.1

${project.artifactId}:${project.version}

http://192.168.10.114:2375

${project.basedir}

/

${project.build.directory}

${project.build.finalName}.jar

编写DokerFile

Spingboot项目的日志保存在/home/logs下,docker容器启动后需要将容器内的日志挂载出来,方便在宿主机查看容器内日志。

$JAVA_OPTS是在docker-compose.yml中指定的环境变量,变量值就是JVM优化后的参数;目的就是在容器启动后优化JVM。

SpringBoot项目的访问端口是8080,容器启动后需要将该端口映射出来。

容器启动后需要指定时区,防止容器内时区不在东八区,这一点非常重要。

FROM openjdk:8-jdk-alpine

VOLUME /home/logs

RUN mkdir -p /home/logs

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN echo 'Asia/Shanghai' >/etc/timezone

COPY *.jar /app.jar

EXPOSE 8080

ENTRYPOINT ["sh","-c","java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -Duser.timezone=GMT+08 -jar /app.jar"]

编写docker-compose.yml

images:镜像名,当然你可也可以根据dockerfile来构建,我这里使用maven插件已经将工程打包成镜像,所以就用打包好的镜像咯

environment:着这里指定JAVA_OPTS环境变量,值就是JVM参数

volumes:将容器内的logs目录挂载到宿主机的logs目录

version: '3'

services:

springappserver:

container_name: springappserver

images: example-dockerk8s:1.0-SNAPSHOT

ports:

- "8080:8080"

volumes:

- "/home/logs:/home/logs"

environment:

- JAVA_OPTS=-Xmx256m -Xms256m

打包镜像上传到宿主机

打包项目

2019-08-11-18-46-20.png

制作镜像并上传到宿主机

1.使用docker插件制作镜像并上传宿主机

2019-08-11-18-47-30.png

2.宿主机查看上传的镜像

2019-08-11-18-49-29.png

启动容器

将docker-compose.yml上传到宿主机/home

使用docker-compose up --d启动容器

使用docker ps查看启动的容器

2019-08-11-18-53-42.png

2019-08-11-18-55-18.png

访问项目

2019-08-11-18-58-08.png

宿主机查看容器内日志

2019-08-11-19-10-59.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值