开门见山
1. 准备
拥有或安装以下内容:
- Linux环境(推荐centos)
- docker (lastest)
- maven
- git
- java8+
2. 部署
- 在线部署
- 新建一个项目文件夹
- git clone 拉取git仓库代码
- 编写dockerfile
# 建议生产使用,ref: http://blog.tenxcloud.com/?p=1894
FROM fabric8/java-jboss-openjdk8-jdk
# 拷贝jar包到容器中
COPY ews-payment.jar /home/
# 微信
# 拷贝p12文件到容器中(没有p12文件时请向管理员申请)
COPY credentials/wechat/ /home/
# 银联
COPY credentials/unionpay/prod/ /home/
# 银联测试
COPY credentials/unionpay/test/ /home/
- 执行startup.sh脚本
#!/bin/bash
# 常量定义
image_name="ews-payment"
# 如果用的 fabric8/java-jboss-openjdk8-jdk 这个镜像,必须要以下两句;默认镜像启动的容器所属用户是jboss
mkdir -p $PWD/logs
chmod 777 $PWD/logs
# mvn 打包项目
mvn clean -Dmaven.test.skip package
# 修改jar包名称
mv ./server/target/payment-server-*-SNAPSHOT.jar ./ewspay-payment.jar
# 创建镜像
docker build -t $image_name .
# 删除旧容器
docker rm -f ewspay-payment
# 运行镜像
docker run -d --restart=on-failure:5 --net=host \
-w /home \
-v $PWD/logs:/home/logs \
--name ewspay-payment $image_name \
java \
-Dserver.port=8040 \
-Duser.timezone=Asia/Shanghai \
-jar /home/ewspay-payment.jar
- 离线部署
与在线部署类似,只是将maven打包的jar包放在本地打包,然后上传到服务器上,后面也是执行docker命令。离线部署适用于git属于私网仓库,无法从公网仓库拉取的情况。