Docker部署springboot项目

一、前言

之前没有用docker的经验,这几天正好有需求要部署项目,于是正好学习了一波,简单部署了一个dubbo服务吧,记录一下过程。

二、环境准备及基础服务

  • Linux contos 7
  • Docker version:18.06.0-ce
  • jdk 1.8+
  • git 1.8+
  • zookeeper

三、部署步骤

• zookeeper
• dubbo-admin
• service(具体项目,idea打包好上传到仓库即可)

dubbo + zookeeper

zookeeper:

// Run zookeeper:
docker run -d --name zk -p 2181:2181 zookeeper

需要dubbo-admin作为管理控制台

dubbo-admin:

// pull images
docker pull riveryang/dubbo-admin

Run dubbo-admin:
docker run -d --name dubbo-admin -p 8082:8080 --link zk:zk -e DUBBO_REGISTRY="zookeeper:\/\/zk:2181" riveryang/dubbo-admin

dubbo-admin默认配置(可根据实际情况修改):

Default environment:
DUBBO_REGISTRY=zookeeper://127.0.0.1:2181
DUBBO_ROOT_PASSWORD=root
DUBBO_GUEST_PASSWORD=root

service

DockerFile:

FROM openjdk:8

ENV LC_ALL en_US.UTF-8

ENV LANG en_US.UTF-8

USER root

WORKDIR /home

COPY $PWD/target/app.jar /home

启动脚本(start-code.sh):

#!/bin/bash
cd `dirname $0`

img_mvn="maven:3.3.3-jdk-8"                 # docker image of maven
m2_cache=~/.m2                              # the local maven cache dir
proj_home=$PWD                              # the project root dir
img_output="***/d-baton-iam-service"         # output image tag

git pull  # should use git clone https://name:pwd@xxx.git

echo "use docker maven"
docker run --rm \
   -v $m2_cache:/root/.m2 \
   -v $proj_home:/usr/src/mymaven \
   -w /usr/src/mymaven $img_mvn mvn clean package -U -Puat

sudo mv $proj_home/target/provider-*.jar $proj_home/target/app.jar # 兼容所有sh脚本
docker build -t $img_output .

mkdir -p $PWD/logs
chmod 777 $PWD/logs

# 删除容器
docker rm -f d-baton-iam-service &> /dev/null

version=`date "+%Y%m%d%H"`

#spring_datasource_url=jdbc:mysql://112.74.76.145:3306/pmsX?useUnicode=true\&characterEncoding=utf-8\&useSSL=false\&serverTimezone=GMT%2B8

# 启动镜像
docker run -d --restart=on-failure:5 --privileged=true \
    --net=host \
    -w /home \
    -v $PWD/logs:/home/logs \
    --name d-baton-iam-service deepexi/d-baton-iam-service \
    java \
        -Djava.security.egd=file:/dev/./urandom \
        -Duser.timezone=Asia/Shanghai \
        -XX:+PrintGCDateStamps \
        -XX:+PrintGCTimeStamps \
        -XX:+PrintGCDetails \
        -XX:+HeapDumpOnOutOfMemoryError \
        -Xloggc:logs/gc_$version.log \
        -jar /home/app.jar \
          --server.port=8083   # 服务端口
          --dubbo.registry.address=10.48.16.2:2181  # 注册中心zk地址

# 查看日志
docker logs -f d-baton-iam-service

启动服务

先在服务器拉好项目并下载好相关依赖,进入到项目根目录

sh start-code-dev.sh

浏览器打开:{服务器ip}:8082 登录dubbo-admin后台看到有服务则部署完成且服务注册成功
dubbo-admin

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值