Skip to content

Commit 553f6af

Browse files
authored
feat: add docker deploy (opentiny#247)
1 parent abcd445 commit 553f6af

File tree

11 files changed

+1119
-0
lines changed

11 files changed

+1119
-0
lines changed

Dockerfile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
FROM eclipse-temurin:17-jdk-jammy as build
2+
WORKDIR /app
3+
ADD . .
4+
RUN wget --no-check-certificate https://mirrors.huaweicloud.com/apache/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz
5+
6+
RUN tar -zxvf apache-maven-3.9.8-bin.tar.gz
7+
8+
RUN rm apache-maven-3.9.8-bin.tar.gz
9+
ENV M2_HOME=/app/apache-maven-3.9.8
10+
ENV PATH=$M2_HOME/bin:$PATH
11+
COPY settings.xml /app/apache-maven-3.9.8/conf/settings.xml
12+
RUN mvn clean package -Dmaven.test.skip=true
13+
FROM eclipse-temurin:17-jdk-jammy
14+
WORKDIR /app
15+
COPY --from=build /app/app/target/tiny-engine-app-*.jar /app/tiny-engine-app.jar
16+
COPY --from=build /app/base/target/tiny-engine-base-*.jar /app/tiny-engine-base.jar
17+
18+
ENTRYPOINT ["java", "-jar", "tiny-engine-app.jar", "--spring.profiles.active=alpha"]
19+
EXPOSE 9090
20+
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
server:
2+
port: 9090
3+
4+
spring:
5+
servlet:
6+
multipart:
7+
max-file-size: 10MB
8+
max-request-size: 10MB
9+
jackson:
10+
date-format: yyyy-MM-dd HH:mm:ss
11+
datasource:
12+
driver-class-name: org.mariadb.jdbc.Driver
13+
username: root
14+
password: 111111
15+
url: jdbc:mariadb://tiny-engine-data:3306/tiny_engine_data_java?useUnicode=true&useSSL=false&characterEncoding=utf8
16+
type: com.alibaba.druid.pool.DruidDataSource
17+
druid:
18+
initial-size: 5 # 连接池初始化时建立的连接数,默认值为 0。
19+
min-idle: 5 # 连接池中最小的空闲连接数,默认值为 0。
20+
max-active: 20 # 连接池中最大活动连接数(即同时可以被请求的连接数),默认值为 8。
21+
test-on-borrow: true # 在从连接池获取连接时,是否进行有效性检查,默认值为 false。
22+
validation-query: SELECT 1 # 用于检测连接是否有效的 SQL 查询语句,通常为简单的查询,比如 `SELECT 1`。如果连接不可用,会被关闭并重新建立。
23+
max-wait: 60000 # 获取连接的最大等待时间(单位:毫秒),超时会抛出异常,默认值为 30000。
24+
time-between-eviction-runs-millis: 60000 # 空闲连接检测线程运行的时间间隔(单位:毫秒)。空闲连接检测线程会定期检查空闲连接,默认值为 30000。
25+
min-evictable-idle-time-millis: 300000 # 连接在池中保持空闲的最小时间(单位:毫秒)。如果空闲时间超过这个值,连接将被回收,默认值为 1800000。
26+
pool-prepared-statements: true # 是否缓存 PreparedStatement 对象,默认值为 true。
27+
max-open-prepared-statements: 20 # 最大缓存的 PreparedStatement 数量,默认值为 -1,表示无限制。如果 `pool-prepared-statements` 设置为 true,设置此值以限制缓存数量。
28+
config:
29+
activate:
30+
on-profile: alpha
31+
#切面启用
32+
aop:
33+
proxy-target-class: true #默认为false
34+
auto: true #默认为false
35+
springdoc:
36+
api-docs:
37+
#是否开启文档功能
38+
enabled: true
39+
#swagger后端请求地址
40+
path: /api-docs
41+
swagger-ui:
42+
enabled: false
43+
path: /swagger-ui.html #自定义swagger-ui HTML文档路径
44+
#包扫描路径
45+
packages-to-scan: com.tinyengine.it.controller
46+
47+
mybatis-plus:
48+
mapper-locations: classpath:mappers/*.xml
49+
configuration:
50+
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
51+
map-underscore-to-camel-case: true
52+
auto-mapping-behavior: full
53+
com.tinyengine.it.mapper: debug
54+
type-handlers-package: com.tinyengine.it.common.handler
55+
56+
57+
logging:
58+
level:
59+
ROOT: INFO
60+
druid.sql.Statement: INFO
61+
pattern:
62+
file: "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"
63+
file:
64+
name: /logs
65+
66+
cors:
67+
allowed-origins: "*"
68+

app/src/main/resources/application-dev.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ server:
22
port: 9090
33

44
spring:
5+
servlet:
6+
multipart:
7+
max-file-size: 10MB
8+
max-request-size: 10MB
59
jackson:
610
date-format: yyyy-MM-dd HH:mm:ss
711
datasource:

docker-compose.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
version: '3'
2+
services:
3+
tiny-engine-data:
4+
image: mysql:5.7
5+
container_name: tiny-engine-data
6+
ports:
7+
- "3306:3306"
8+
environment:
9+
MYSQL_ROOT_PASSWORD: 111111
10+
MYSQL_DATABASE: tiny_engine_data_java
11+
TZ: Asia/Shanghai
12+
volumes:
13+
- ./docker-deploy-data/mysql/data/:/var/lib/mysql/
14+
- ./docker-deploy-data/mysql/conf/:/etc/mysql/conf.d/
15+
- ./docker-deploy-data/mysql/init/:/docker-entrypoint-initdb.d/
16+
- ./docker-deploy-data/mysql/logs/:/logs/
17+
18+
tiny-engine-back:
19+
image: tiny-engine-back
20+
container_name: tiny-engine-back
21+
build:
22+
context: .
23+
dockerfile: Dockerfile
24+
ports:
25+
- "9090:9090"
26+
depends_on:
27+
- tiny-engine-data
28+
29+
tiny-engine:
30+
image: tiny-engine
31+
container_name: tiny-engine
32+
build:
33+
context: ../tiny-engine/
34+
dockerfile: Dockerfile
35+
ports:
36+
- "80:80"
37+
volumes:
38+
- ./docker-deploy-data/nginx.conf:/etc/nginx/nginx.conf
39+
depends_on:
40+
- tiny-engine-back
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[client]
2+
default-character-set=utf8mb4
3+
[mysql]
4+
default-character-set=utf8mb4
5+
[mysqld]
6+
init-connect="SET collation_connection = utf8mb4_unicode_ci"
7+
init-connect="SET NAMES utf8mb4"
8+
collation-server=utf8mb4_unicode_ci
9+
character-set-server=utf8mb4
10+

0 commit comments

Comments
 (0)