Docker部署 Java Spring Boot / Maven 笔记

1. java / jar 编译及打包基础命令

 // 把src里面的*.java编译到bin, classpath = lib/*;src/
 javac -encoding utf8 -Xlint:deprecation -proc:none -cp "lib/*;src/" src\*.java -d bin
 
 // jar打包并输出到build-jar/test.jar, 包含src, docs目录
 jar cvfm build-jar/test.jar resources\manifest.txt -C bin . src docs
 
 // 为src里面的java生成说明文档
 javadoc -encoding utf8 -cp "lib/*;src/" src\*.java -d docs

2. mvn基本命令

- 运行

mvn spring-boot:run

or

java -jar target/springboot_sample-1.0.jar

- 指定根据路径build/下的pom.xml, 清理后创建jar包,同时忽略测试

mvn clean package -D maven.test.skip=true -f ./build

3. Docker Compose 优雅部署方式

说明:看了一些网上的jar在docker部署方式,都不太优雅,且不够灵活,这里给出一套总结下来可行的方案:使之能在通过配置,指定运行的jar,不必写死在镜像里。

3.1 目录结构

说明
root@rp4-server1:/# tree docker-compose
docker-compose
├── docker
│   ├── java
│   │   └── Dockerfile
│   ├── nginx.Dockerfile
├── docker-compose.yml
 
其中 Dockerfile为java构建所需镜像说明
/data0/Projects/java/t01/springboot_sample-1.0.jar目标jar文件

3.2 docker-compose.yml

    java01:
        restart: always
        container_name: ${APP_NAME:?err}-java01
        build:
            context: ./docker/java
        command: java -jar springboot_sample-1.0.jar
        # expose 为仅需要内部暴露端口给其他应用
        #expose:
        #    - 8080
        # posts 为映射到服务器端口,可直接访问
        ports:
            - 8080:8080
        links:
            - 'mariadb'
            - 'redis'
        volumes:
            - '/data0/Projects/java/t01:/workspace'  #映射工作目录

3.3 Dockerfile

#需选择正确的镜像包,我的环境是树莓派4,所以选arm64v8/openjdk,正常的可选java8
FROM arm64v8/openjdk:latest

# 建立工作目录
RUN mkdir /workspace
WORKDIR /workspace
ADD . /workspace/

4. 访问测试: 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bennybi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值