docker-compose部署spring-boot应用

spring-boot应用部署,与使用tomcat部署略有些不同。

version: '2'
services:
  eureka:
    image: openjdk:8-jdk-alpine
    container_name: eureka
    network_mode: "host"
    command: java -Djava.security.egd=file:/dev/./urandom -jar /jar/spring.cloud.eureka.jar
    logging:
      options:
        max-size: "1m"
        max-file: "10"
    env_file:
       - /env_files/springboot.env
    volumes:
       - /home/data/jar/eureka/:/jar/
       - /home/data/env_files/springboot.env:/env_files/springboot.env
       - /home/tmps/eureka/:/tmp/
  provider:
    image: openjdk:8-jdk-alpine
    container_name: provider
    network_mode: "host"
    command: java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5500 -Djava.net.preferIPv4Stack=true -Djava.security.egd=file:/dev/./urandom -jar /jar/spring.cloud.provider.jar
    ports: 
       - "5500:5500"
    env_file:
       - /env_files/springboot.env
    logging:
      options:
        max-size: "1m"
        max-file: "10"
    volumes:
       - /home/data/jar/provider/:/jar/
       - /home/tmps/provider/:/tmp/
       - /home/data/env_files/springboot.env:/env_files/springboot.env
  consumer:
    image: openjdk:8-jdk-alpine
    container_name: consumer
    network_mode: "host"
    command: java -Djava.security.egd=file:/dev/./urandom -jar /jar/spring.cloud.consumer.jar
    env_file:
       - /env_files/springboot.env
    logging:
      options:
        max-size: "1m"
        max-file: "10"
    volumes:
       - /home/data/jar/consumer/:/jar/
       - /home/tmps/consumer/:/tmp/
       - /home/data/env_files/springboot.env:/env_files/springboot.env

其中:

1、image:openjdk:8-jdk-alpine为官方提供的spring-boot镜像

2、network_mode:此处使用host模式,也可以选择其他模式,如bridge网络模式。

3、commad:jar包启动命令,主要包含以下内容:

(1)修改jdk中的urandom文件(好像是防止访问的什么锁)

(2)指定要部署的jar包。

(3)provider的commad中,设置了远程调试,即本地与服务器断点联调。该配置内容必须紧跟java命令。5500是可配置的断点端口。

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5500 -Djava.net.preferIPv4Stack=true ....

4、env_file:指定环境变量文件,此环境变量文件,配置内容:

eureka_host=192.168.x.1
eureka_port=9999

provider_service_host=192.168.x.1
provider_service_port=9001

consumer_service_host=192.168.x.1
consumer_service_port=9002

此环境变量文件,是配合application.properties文件中的动态设置来使用,application.properties配置如下:

# 当前配置文件中,使用环境变量引用和文件内部引用两种方式
## 带有下划线的,属于环境变量,用于linux服务器发布。
## 带有点的,属于文件内部引用
## ${}中的冒号属于设置默认值,用户本地开发

## 用户服务提供方应用信息
spring.application.name = provider
## 服务器地址
server.host=${provider_service_host:localhost}
## 服务端口
server.port = ${provider_service_port:9001}
         
#配置eureka
eureka.host=${eureka_host:localhost}
eureka.port=${eureka_port:9999}
eureka.client.serviceUrl.defaultZone = http://${eureka.host}:${eureka.port}/eureka/
eureka.instance.hostname = ${server.host:localhost}
eureka.instance.prefer-ip-address = true
eureka.instance.instance-id=${spring.cloud.client.ip-address}:${server.port}

#配置Feign
provider.service.name = ${spring.application.name}
provider.service.url = http://${server.host}:${server.port}/

5、volumns

(1)将指定的jar包目录挂载给容器

(2)将springcloud.env文件挂载给容器,使env_file环境变量文件配置能生效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值