Spring Boot + Maven + docker-compose项目部署

之前部署过python、go应用,就是没部署过Java应用,所以一直不清楚该如何去部署一个Java应用(比如说Spring Boot应用)
现在刚好要用到,尝试了一波,以下是我部署Spring Boot应用的方法:

使用的工具

  • SpringBoot
  • Maven包管理工具
  • docker
  • docker-compose(依赖于docker,是docker的一个工具)

之前一直以为,用docker跑一定要跑全过程(意味着编译、运行都在docker里),后来没想出啥办法,就直接先手动编译成jar,在docker里跑JVM。这让我想到和python的不同之处:jvm是一个完整的环境,可以直接跑一个jar文件,而python需要下载安装各种依赖才能跑,没有编译过程,自然需要在docker里进行所有步骤。猜测像这种编译型的应用,都应该先编译,然后直接放到docker里跑。

步入正题

服务器 Ubuntu 16.04

  • 安装工具

    首先安装docker,docker最新版安装步骤直接看官网

    直接用apt-get安装

    apt-get install maven docker-compose openjdk-8-jdk openjdk-8-jdk-headless
    
  • 编译
    下面的步骤maven会提示你设置JAVA_HOME,但其实只要安装完上面的内容,运行java和javac不会显示command not found就行了(一般用apt-get安装后的jdk目录是/usr/lib/jvm/openjdk-8)
    进入项目目录

    mvn package
    

    如果一切顺利会在项目目录下的target目录下生成项目名--0.0.1-SNAPSHOT.jar的jar文件,这就是已经编译好的Java应用程序了

  • docker-compose部署

    • 在项目目录下创建docker-compose.yml文件
      version: '2'
      services:
        tasklist:
          restart: always
          build:
            context: .
          dockerfile: Dockerfile
          volumes:
            - .:/code
          ports:
            - "6789:6789"
      
      
    • 在项目目录下创建Dockerfile文件
      FROM openjdk:8-jdk
      
      COPY ./target/application-0.0.1-SNAPSHOT.jar /usr/local
      
      ENTRYPOINT ["java", "-jar", "/usr/local/application-0.0.1-SNAPSHOT.jar"]
      
      
    • 构建镜像、创建容器并运行
       docker-compose up
      

你可能感兴趣的:(Spring Boot + Maven + docker-compose项目部署)