Spring Boot应用的Docker化

头条上看到一个权限管理系统的介绍,今天本来想研究一下,clone代码后发现工程自带了Dockfile和docker-compose.yml, 于是研究了一下Spring Boot工程的Docker化。以renren-admin工程为例,要将一个Spring Boot工程Docker化,需要的操作有:

1)新建一个Dockfile在工程的根目录下:

内容如:

FROM java:8
EXPOSE 8080

VOLUME /tmp
ADD target/renren-admin.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]

2)通过mvn clean install生成jar包。

3)打开Docker Quickstart Terminal,进入renren-admin的根目录,通过build命令生成镜像。

docker build --tag=renren/admin .

4)查看image

docker image ls

5)启动

 docker run -d -p 8080:8080 renren/admin

6)查看container

docker container ls

7)由于连接本地的mysql服务器,通过Docker启动Spring Boot应用会在一个虚拟机中,为使连接成立,有两种方式:

a:数据库url配置使用localhost,Docker启动带上参数 --net=host(该方法实验中不可行)

 docker run --net=host -d -p 8080:8080 renren/admin

b: 数据库url配置使用ip地址。

8)renren-api的docker化和服务启动可参考上述1)-7)步。

9)通过docker-compose.yml集群化部署:

可先通过docker container stop <conainerId>的方式停止renren-admin,renren-api服务。

docker-compose.yml的内容如下:

version: '3'
services:
  renren-admin:
    image: renren/admin
    ports:
      - "8080:8080"
    environment:
      - spring.profiles.active=dev
  renren-api:
    image: renren/api
    ports:
      - "8081:8081"
    environment:
      - spring.profiles.active=dev

在deploy之前,确保renren/admin和renren/api两个image已build,确保有一个可用的swarm(可通过docker swarm init --advertise-addr=192.168.99.100生成一个swarm),然后:

docker stack deploy -c docker-compose.yml renren

 

转载于:https://my.oschina.net/u/4042451/blog/3037210

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值