【1】首先要打包成可运行的、完整的jar
打包命令:
mvn clean package spring-boot:repackage
说明:package spring-boot:repackage 会在打包jar的时候,把依赖的jar包一同重新打包加入到打包的jar中,使当前项目jar可运行。
注意事项:此命令需在jar包项目pom文件所在项目执行,否则会报错。
【2】基础镜像要适当,如果不理会中文环境包等细节,可以100MB出头;
以下是3个可用的较小的镜像
FROM openjdk:8-jdk-alpine 这个基础镜像最小,105MB;
FROM fabric8/java-alpine-openjdk8-jdk,108MB;
FROM openjdk:8-jre ,265MB,
而且JAVA_HOME不用设置了,基础镜像里都设置好了;
(基础镜像的内部细节可以通过 inspect命令查看
docker inspect openjdk:8-jre
构建细节则可以通过history命令查看:
docker history --no-trunc openjdk:8-jdk-alpine)
【3】Dockerfile 示例:
FROM openjdk:8-jdk-alpine
MAINTAINER “gzjungle”
LABEL description=“描述”
复制运行文件环境
RUN mkdir /springbootdemo
WORKDIR /springbootdemo
COPY ./SpringBootDemo-1.0-SNAPSHOT.jar /springbootdemo
EXPOSE 8080
直接运行Jar包
CMD [ “java”, “-jar”,“SpringBootDemo-1.0-SNAPSHOT.jar”]
如果Dockerfile里面要通过环境变量来指定springboot的profile配置用哪个(pro/dev/test), 要用另一种方式:
ARG spring_env_var=pro
ENV SPRING_ENV=
s
p
r
i
n
g
e
n
v
v
a
r
C
M
D
[
"
s
h
"
,
"
−
c
"
,
"
j
a
v
a
−
j
a
r
S
p
r
i
n
g
B
o
o
t
D
e
m
o
−
1.0
−
S
N
A
P
S
H
O
T
.
j
a
r
−
−
s
p
r
i
n
g
.
p
r
o
f
i
l
e
s
.
a
c
t
i
v
e
=
spring_env_var CMD ["sh", "-c", "java -jar SpringBootDemo-1.0-SNAPSHOT.jar --spring.profiles.active=
springenvvarCMD["sh","−c","java−jarSpringBootDemo−1.0−SNAPSHOT.jar−−spring.profiles.active=SPRING_ENV"]