10.4.docker部署SpringBoot项目

Dockerfile

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar

ENTRYPOINT ["java","-jar","-Dspring.config.location=/etc/mo/config/application.properties","/app.jar"]

# ENTRYPOINT ["java","-jar","/app.jar"]

# ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom",\
"-jar",\
"-Dlogging.path=/var/live/logs",\
"-Dloader.path=/usr/web/live/lib",\
"-Dlogging.config=/usr/web/live/config/log4j2.xml",\
"-Dspring.config.location=/usr/web/live/config/application.yml",\
"/usr/web/live/lib/app.jar"]

构建镜像

docker build -t moluo/mo-api:0.0.1 .

准备配置文件

/etc/mo/config/application.properties

spring.profiles.active=prod

#server
server.port=9000

#thymeleaf
#spring.thymeleaf.properties=utf-8

#mysql
#spring.datasource.url = jdbc:mysql://localhost:3306/mo?useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC
spring.datasource.url = jdbc:mysql://localhost:3306/mo?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver


#jpa
spring.jpa.show-sql = false
spring.jpa.hibernate.ddl-auto = update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

#security
#security.basic.enabled=false
token.expire=30000

运行容器

docker run --name mo-api -d -p 9000:9000 -v /etc/mo/config:/etc/mo/config mo-api:0.0.1

docker run --entrypoint java -jar -Dspring.config.location=/etc/mo/config/application.properties /app.jar -p 9000:9000 -v /etc/mo/config:/etc/mo/config --name mo-api mo-api:0.0.1 

docker run --entrypoint java -jar -Dspring.config.location=/etc/mo/config/application.properties /app.jar -p 9001:9000 -v /etc/mo/config:/etc/mo/config --name mo-api2 mo-api:0.0.1

Last updated

Was this helpful?