使用 Oracle 部署
duic 支持使用 Oracle 存储配置数据。
前提
Java >= 1.8
Oracle >= 11g
准备工作
创建表空间
- CREATE TABLESPACE duic DATAFILE 'duic.dbf' SIZE 1G;
创建用户
- CREATE USER duic IDENTIFIED BY duic ACCOUNT UNLOCK DEFAULT TABLESPACE duic;
授权
- GRANT DBA TO duic;
启动配置
application.yml
- spring:
- datasource:
- url: jdbc:oracle:thin:@127.0.0.1:1521:XE
- username: duic
- password: duic
- 参数详细解释
-spring.datasource
数据源
-url
Oracle 连接地址
-username
Oracle 连接用户
-password
Oracle 连接用户密码
docker 部署
镜像已经同步至 docker 官方镜像仓库 https://hub.docker.com/r/zhudyos/duic。
- 启动镜像
- $ docker run -d -p 7777:7777 -e DUIC_OPTS=-Dspring.profiles.active=oracle -v $(pwd)/config:/app/config zhudyos/duic
Tip
将
application.yml
配置文件所在目录挂载到容器的/app/config
目录中通过
DUIC_OPTS
环境变量设置数据库类型
- 测试
- $ curl http://localhost:7777/index.html
传统 java 方式部署
- 确认 java 环境至少是 1.8 或以上的版本
- $ java -version
- java version "1.8.0_151"
- Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
- Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
- 创建 duic 目录
- $ mkdir /opt/duic
- 进入 duic 目录
- $ cd /opt/duic
- 在 GitHub Releases 页面获取 duic-[version].jar 并放置在
/opt/duic
目录中
- $ wget https://github.com/zhudyos/duic/releases/download/[version]/duic-[version].jar -O duic.jar
Tip
在部署时需要将 url 中的版本替换为你需要的版本号,最好从 GitHub Releases 找到合适的版本后复制下载地址
- 创建配置文件目录
- $ mkdir config
Tip
确保 config
是 /opt/duic
的子目录
- 进入配置文件目录
- $ cd config
- 创建启动配置文件/并将数据库连接配置写入文件
- $ touch application.yml
- 启动 duic
- $ java -Dspring.profiles.active=oracle -jar duic.jar
Tip
spring.profiles.active
oracle
使用 Oracle 存储配置数据时该参数必须增加
在控制台看见如下日志输出即启动成功
- ______ _ ______
- |_ _ `. (_) .' ___ |
- | | `. \ __ _ __ / .' \_|
- | | | |[ | | | [ || |
- _| |_.' / | \_/ |, | |\ `.___.'\
- |______.' '.__.'_/[___]`.____ .'
- :: duic ::
- 2018-05-31 13:48:19,330 INFO i.z.d.server.Application$Companion - Starting Application.Companion on USER-20170412BX with PID 6936 (D:\work\projects\duic\out\production\classes started by Administrator in D:\work\projects\duic)
- 2018-05-31 13:48:19,342 INFO i.z.d.server.Application$Companion - The following profiles are active: postgresql
- 2018-05-31 13:48:19,420 INFO o.s.b.w.r.c.AnnotationConfigReactiveWebServerApplicationContext - Refreshing org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebServerApplicationContext@5cbe877d: startup date [Thu May 31 13:48:19 CST 2018]; root of context hierarchy
- 2018-05-31 13:48:21,317 INFO o.s.w.r.f.s.s.RouterFunctionMapping - Mapped /api/v1 => {
- (GET && /ssc/{name}/{profile}) -> org.springframework.web.reactive.function.server.RouterFunctionDsl$GET$1@41ad373
- /apps => {
- (GET && /states/{name}/{profile}) -> org.springframework.web.reactive.function.server.RouterFunctionDsl$GET$1@6801b414
- (GET && /watches/{name}/{profile}) -> org.springframework.web.reactive.function.server.RouterFunctionDsl$GET$1@177c41d7
- (GET && /{name}/{profile}) -> org.springframework.web.reactive.function.server.RouterFunctionDsl$GET$1@4f327096
- (GET && /{name}/{profile}/{key}) -> org.springframework.web.reactive.function.server.RouterFunctionDsl$GET$1@1d61a348
- }
- }
- /servers => {
- (POST && /apps/refresh) -> org.springframework.web.reactive.function.server.RouterFunctionDsl$POST$1@78a515e4
- (GET && /last-data-time) -> org.springframework.web.reactive.function.server.RouterFunctionDsl$GET$1@d2291de
- }
- 2018-05-31 13:48:21,317 INFO o.s.w.r.f.s.s.RouterFunctionMapping - Mapped org.springframework.web.reactive.function.server.RouterFunctions$FilteredRouterFunction@28f4f300
- 2018-05-31 13:48:21,329 INFO o.s.w.r.h.SimpleUrlHandlerMapping - Mapped URL path [/**] onto handler of type [class org.springframework.web.reactive.resource.ResourceWebHandler]
- 2018-05-31 13:48:21,364 INFO o.s.w.r.r.m.a.ControllerMethodResolver - Looking for @ControllerAdvice: org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebServerApplicationContext@5cbe877d: startup date [Thu May 31 13:48:19 CST 2018]; root of context hierarchy
- 2018-05-31 13:48:21,750 INFO o.f.c.internal.util.VersionPrinter - Flyway Community Edition 5.0.7 by Boxfuse
- 2018-05-31 13:48:21,752 INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
- 2018-05-31 13:48:21,820 INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
- 2018-05-31 13:48:21,825 INFO o.f.c.i.database.DatabaseFactory - Database: jdbc:postgresql://192.168.31.164:5432/duic (PostgreSQL 10.4)
- 2018-05-31 13:48:21,876 INFO o.f.c.internal.command.DbValidate - Successfully validated 4 migrations (execution time 00:00.021s)
- 2018-05-31 13:48:21,900 INFO o.f.core.internal.command.DbMigrate - Current version of schema "public": 1.8.0.3
- 2018-05-31 13:48:21,901 INFO o.f.core.internal.command.DbMigrate - Schema "public" is up to date. No migration necessary.
- 2018-05-31 13:48:21,997 INFO o.s.j.e.a.AnnotationMBeanExporter - Registering beans for JMX exposure on startup
- 2018-05-31 13:48:21,998 INFO o.s.j.e.a.AnnotationMBeanExporter - Bean with name 'dataSource' has been autodetected for JMX exposure
- 2018-05-31 13:48:22,003 INFO o.s.j.e.a.AnnotationMBeanExporter - Located MBean 'dataSource': registering with JMX server as MBean [com.zaxxer.hikari:name=dataSource,type=HikariDataSource]
- 2018-05-31 13:48:22,011 INFO o.s.s.a.ScheduledAnnotationBeanPostProcessor - No TaskScheduler/ScheduledExecutorService bean found for scheduled processing
- 2018-05-31 13:48:22,178 INFO r.i.netty.tcp.BlockingNettyContext - Started HttpServer on /0:0:0:0:0:0:0:0:7777
- 2018-05-31 13:48:22,178 INFO o.s.b.w.e.netty.NettyWebServer - Netty started on port(s): 7777
- 2018-05-31 13:48:22,183 INFO i.z.d.server.Application$Companion - Started Application.Companion in 3.497 seconds (JVM running for 4.756)
- 测试
- $ curl http://localhost:7777/index.html