feat: update dockerfile

This commit is contained in:
vran 2022-03-05 22:22:18 +08:00
parent 1f3aa9e6d9
commit 3d128f91c5
5 changed files with 36 additions and 30 deletions

View File

@ -11,4 +11,4 @@ EXPOSE 8080
#-Ddatabasir.datasource.username=${databasir.datasource.username} #-Ddatabasir.datasource.username=${databasir.datasource.username}
#-Ddatabasir.datasource.password=${databasir.datasource.password} #-Ddatabasir.datasource.password=${databasir.datasource.password}
#-Ddatabasir.datasource.url=${databasir.datasource.url} #-Ddatabasir.datasource.url=${databasir.datasource.url}
ENTRYPOINT ["sh", "-c","java ${JAVA_OPTS} -jar /app/databasir.jar"] ENTRYPOINT ["sh", "-c","java -Ddatabasir.db.url=${DATABASIR_DB_URL} -Ddatabasir.db.username=${DATABASIR_DB_USERNAME} -Ddatabasir.db.password=${DATABASIR_DB_PASSWORD} -jar /app/databasir.jar"]

View File

@ -7,8 +7,6 @@ Databasir 采用了前后端分离的模式进行开发和部署,项目仓库
- 后端应用: https://github.com/vran-dev/databasir - 后端应用: https://github.com/vran-dev/databasir
- 前端应用: https://github.com/vran-dev/databasir-frontend - 前端应用: https://github.com/vran-dev/databasir-frontend
## 后端 ## 后端
**一、环境要求** **一、环境要求**
@ -17,22 +15,18 @@ Databasir 采用了前后端分离的模式进行开发和部署,项目仓库
2. Mysql 2. Mysql
3. Intellij IDEA 3. Intellij IDEA
**二、主要框架** **二、主要框架**
1. Gradle构建工具 1. Gradle构建工具
2. Spring-boot核心框架 2. Spring-boot核心框架
1. Web 1. Web
2. Security 2. Security
3. Quartz定时任务调度 3. Quartz定时任务调度
4. JOOQORM 框架 4. JOOQORM 框架
5. Lombok代码生成 5. Lombok代码生成
6. Mapstruct代码生成 6. Mapstruct代码生成
7. Flyway数据库脚本管理 7. Flyway数据库脚本管理
**三、项目结构** **三、项目结构**
项目结构采用了分层结构 项目结构采用了分层结构
@ -49,8 +43,6 @@ Databasir 采用了前后端分离的模式进行开发和部署,项目仓库
项目数据库脚本放在 dao/src/main/resources/db/migration 目录下 项目数据库脚本放在 dao/src/main/resources/db/migration 目录下
**四、项目启动** **四、项目启动**
1、通过 Java Main 方法启动 1、通过 Java Main 方法启动
@ -78,8 +70,6 @@ spring.flyway.locations=classpath:db/migration
启动完成后,可以通过 http://localhost:8080 访问 启动完成后,可以通过 http://localhost:8080 访问
2、通过 Gradle 启动 2、通过 Gradle 启动
与 Java 启动模式一样,首先需要准备配置文件 与 Java 启动模式一样,首先需要准备配置文件
@ -89,14 +79,12 @@ spring.flyway.locations=classpath:db/migration
```properties ```properties
server.port=8080 server.port=8080
logging.level.org.jooq=INFO logging.level.org.jooq=INFO
# 必须:数据库配置 # 必须:数据库配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root spring.datasource.username=root
spring.datasource.password=123456 spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/databasir spring.datasource.url=jdbc:mysql://localhost:3306/databasir
spring.jooq.sql-dialect=mysql spring.jooq.sql-dialect=mysql
# 可选flyway 配置 # 可选flyway 配置
spring.flyway.enabled=true spring.flyway.enabled=true
spring.flyway.baseline-on-migrate=true spring.flyway.baseline-on-migrate=true
@ -111,8 +99,6 @@ spring.flyway.locations=classpath:db/migration
启动完成后,可以通过 http://localhost:8080 访问 启动完成后,可以通过 http://localhost:8080 访问
## 前端 ## 前端
一、依赖 一、依赖
@ -122,8 +108,6 @@ spring.flyway.locations=classpath:db/migration
3. element-plus 3. element-plus
4. axios 4. axios
二、运行 二、运行
```shell ```shell

View File

@ -23,14 +23,14 @@ Databasir 采用了前后端分离的模式进行开发和部署,项目仓库
3. 在 Databasir.jar 所在目录创建 config 目录,并在目录下创建 `application.properties` 配置,配置中配置 MYSQL 的用户名、密码和连接 3. 在 Databasir.jar 所在目录创建 config 目录,并在目录下创建 `application.properties` 配置,配置中配置 MYSQL 的用户名、密码和连接
```properties ```properties
# 端口号默认8080 # 端口号,默认 8080
server.port=8080 server.port=8080
# 数据库用户名 # 数据库用户名
databasir.datasource.username=root databasir.db.username=root
# 数据库密码 # 数据库密码
databasir.datasource.password=123456 databasir.db.password=123456
# 数据库地址 # 数据库地址
databasir.datasource.url=127.0.0.1:3306 databasir.db.url=127.0.0.1:3306
``` ```
4. 通过 java -jar Databasir.jar 启动应用即可 4. 通过 java -jar Databasir.jar 启动应用即可
@ -44,8 +44,6 @@ databasir.datasource.url=127.0.0.1:3306
通过该账号登录应用既可以进行管理 通过该账号登录应用既可以进行管理
### Docker 部署 ### Docker 部署
目前镜像没有上传到 DockerHub需要用户自己在本地手动构建 目前镜像没有上传到 DockerHub需要用户自己在本地手动构建
@ -59,13 +57,28 @@ git clone https://github.com/vran-dev/databasir.git
2. 构建镜像 2. 构建镜像
```shell ```shell
docker build -t databasir:v1 . docker build -f Dockerfile -t databasir:v1 .
```
如果你本地有 Java 环境的话我建议通过 gradle 先编译项目再构建镜像,这样会更快
```shell
# 先编译项目
./gradlw api:build
# 再构建镜像
docker build -f local.Dockerfile -t databasir:v1 .
``` ```
3. 启动项目 3. 启动项目
通过 Docker 启动项目也需要通过环境变量来配置数据库信息
- DATABASIR_DB_URL 数据库地址
- DATABASIR_DB_USERNAME 数据库用户
- DATABASIR_DB_PASSWORD 数据库密码
```shell ```shell
docker run -e JAVA_OPTS="-Ddatabasir.datasource.url=127.0.0.1:3306 -Ddatabasir.datasource.username=root -Ddatabasir.datasource.password=123456" -p 8080:8080 -d databasir:v1 docker run --name databasir-demo -e DATABASIR_DB_URL=local_default:3306 -e DATABASIR_DB_USERNAME=root -e DATABASIR_DB_PASSWORD=123456 databasir:v1
``` ```
## Docker Compose 本地部署 ## Docker Compose 本地部署

View File

@ -1,9 +1,9 @@
server.port=8080 server.port=8080
# datasource # datasource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=${databasir.datasource.username} spring.datasource.username=${databasir.db.username}
spring.datasource.password=${databasir.datasource.password} spring.datasource.password=${databasir.db.password}
spring.datasource.url=jdbc:mysql://${databasir.datasource.url}/${databasir.datasource.database-name:databasir} spring.datasource.url=jdbc:mysql://${databasir.db.url}/${databasir.db.name:databasir}
# jooq # jooq
spring.jooq.sql-dialect=mysql spring.jooq.sql-dialect=mysql
# flyway # flyway

9
local.Dockerfile Normal file
View File

@ -0,0 +1,9 @@
FROM openjdk:11.0.13-jre
WORKDIR /app
ADD api/build/libs/databasir.jar /app/databasir.jar
EXPOSE 8080
#-Ddatabasir.datasource.username=${databasir.datasource.username}
#-Ddatabasir.datasource.password=${databasir.datasource.password}
#-Ddatabasir.datasource.url=${databasir.datasource.url}
ENTRYPOINT ["sh", "-c","java -Ddatabasir.db.url=${DATABASIR_DB_URL} -Ddatabasir.db.username=${DATABASIR_DB_USERNAME} -Ddatabasir.db.password=${DATABASIR_DB_PASSWORD} -jar /app/databasir.jar"]