Docker部署Spring Boot应用

1. 打包为 jar 包

1
mvn -DskipTests=true clean package

2. 编写 Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
FROM java:8
VOLUME /tmp
ADD airnet-api-service-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8085
ENV JAVA_OPTS="\
-server \
# 初始堆内存大小
-Xms128m \
# 堆内存最大值
-Xmx256m \
# 年轻代大小
-Xmn64m \
# 年轻的和老年代的内存比例为 1:4
-XX:NewRatio=4 \
# 新生代 Eden 和 Survivor 比例为 8:2
-XX:SurvivorRatio=8 \
# 打印GC详细信息
-XX:+PrintGCDetails"
ENTRYPOINT java ${JAVA_OPTS} -jar /app.jar

3. 构建 Docker 镜像并运行

1
2
3
4
# 将Dockerfile与jar包放至同一目录下
$ docker build -t api-service
# 运行
$ docker run -it --name api-service -p 8085:8085 -t api-service

4.停止应用并删除 Docker 镜像

1
2
3
$ docker stop api-service
$ docker rm api-service
$ docker image rm api-service

5. 其他

Consul 启动

1
consul agent -server -ui -bootstrap-expect=1 -data-dir=/root/consul -advertise={consul广播IP} -bind=0.0.0.0 -client=0.0.0.0
  • 本文作者: Marticles
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!