文档章节

Davinci一键部署 | 论如何三句代码跑起Davinci

宜信技术学院
 宜信技术学院
发布于 03/22 18:18
字数 1221
阅读 126
收藏 0

来源:敏捷大数据

作者:汤波成

宜信技术学院

导读:之前喜欢Davinci的小伙伴儿在安装部署Davinci遇见问题时需要在github issue区等待技术人员的解答。现在不用怕啦,社区热心用户白菜君帮我们支持了docker-composer一键启动,以后只需寥寥几行代码,Davinci就能舒畅的run起来了。还等什么,赶紧部署起来吧~

敲重点

Davinci Docker原部署教程在这里:

https://github.com/edp963/davinci-docker

里面会不定时更新

记得收藏啊!!

下面是部署教程:

一、环境要求

安装docker后的 windows, linux, mac。

检查是否有docker-compose命令(安装docker后默认会有,否则请手动安装)。

二、完整步骤

git clone https://github.com/edp963/davinci-docker.git
cd /d davinci-docker
# docker build -t="edp963/davinci:v0.3.0-beta.4" .
# 修改docker-compose.yml中邮箱配置docker-compose up -d 复制代码

完成!

你没看错!

就这么简单的完成了!

这样就可以安装部署Davinci了!

再也不用担心安装Davinci时遇到问题了!

然鹅,在部署Docker镜像过程中,我们的白菜君是怎么想的呢?让我们继续往下看:

内容会不定时更新哦,所以请大家收藏这个地址:

https://github.com/edp963/davinci-docker

三、Docker支持环境变量列表

四、原理分析

制作Davinci Docker镜像

1. Dockfile分析

FROM java:8-jre
LABEL MAINTAINER="edp_support@groups.163.com"
# 从github上下载分发包并解压
RUN cd / \ 
&& mkdir -p /opt/davinci\ 
&& wget
https://github.com/edp963/davinci/releases/download/v0.3.0-beta.4/davinci-assembly_3.0.1-0.3.0-SNAPSHOT-dist-beta.4.zip
\  && unzip
davinci-assembly_3.0.1-0.3.0-SNAPSHOT-dist-beta.4.zip -d /opt/davinci
# 将phantomjs打包到镜像
ADD phantomjs-2.1.1 /opt/phantomjs-2.1.1
# 数据库初始化脚本,等待数据库就绪后启动spring boot
ADD bin/start.sh /opt/davinci/bin/start.sh
# docker镜像是静态的,因此配置文件中的配置需要用环境变量传递,详见12factor# https://12factor.net/zh_cn/
ADD config/application.yml
/opt/davinci/config/application.yml
# 预设davinci必备的两个环境变量ENV
DAVINCI3_HOME /opt/davinciENV PHANTOMJS_HOME /opt/phantomjs-2.1.1
WORKDIR /opt/davinci
# 为什么使用CMD而不是ENTRYPOINT? 因为CMD可以在docker run的时候被替代# 在使用compose或K8S时,很有可能要在启动前执行其它脚本,而不是直接运行# start-server.sh# 在单独docker run且不附加任何命令时,以下命令默认执行
CMD ["./bin/start-server.sh"]
EXPOSE 8080复制代码

start.sh

#!/bin/bash
# 将sql脚本经过mysql8兼容处理后,写入/initdb目录# /initdb 目录是与mysql容器共享目录# mysql容器将在启动时执行 /docker-entrypoint-initdb.d 中的所有脚本
cd /opt/davinci/bin/mkdir /initdbcat
davinci.sql > /initdb/davinci.sqlsed -i '1i\SET
GLOBAL log_bin_trust_function_creators = 1;' /initdb/davinci.sql
 
# 由于docker compose中启动顺序管理交给了容器自己# 详见
https://docs.docker.com/compose/startup-order/# 因此我们需要用curl探测mysql端口,当接受数据字节大于0时认为# 数据库可以连通,接下来我们执行davinci spring boot主程序set
-e
host="$1"shiftcmd="$@"
until [ $(curl -I -m 10 -o /dev/null -s -w %{size_download} $host) -gt 0 ]; do  >&2 echo
"database is unavailable - sleeping"  sleep 1done
source $cmd复制代码

2. 构建镜像

docker build -t="edp963/davinci:v0.3.0-beta.4" .复制代码

3. Docker Compose

version: '3.6'services:  davinci:   
environment:      - MYSQL_CONN=jdbc:mysql://mysql:3306/davinci0.3?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true      - DB_USER=root      - DB_PWD=abc123123      - MAIL_HOST=smtp.163.com      - MAIL_PORT=465      - MAIL_STMP_SSL=true      - MAIL_USER=xxxxxx@163.com      - MAIL_PWD=xxxxxxxx      - MAIL_NICKNAME=davinci    image: "edp963/davinci:v0.3.0-beta.4"    ports:     
- 58080:8080    # 等待mysql就绪后再启动spring boot主程序    command: ["./bin/start.sh",
"mysql:3306", "--", "start-server.sh"]    restart: always    volumes:      - davinci_logs:/opt/davinci/logs      - davinci_userfiles:/opt/davinci/userfiles      - davinci_initdb:/initdb  #共享给mysql作数据初始化  mysql:    image: mysql:8    restart: always    environment:      - MYSQL_ROOT_PASSWORD=abc123123      - MYSQL_DATABASE=davinci0.3    volumes:      - mysql_data:/var/lib/mysql      # 初始化脚本源自davinic容器的initdb目录      - davinci_initdb:/docker-entrypoint-initdb.d:ro   
volumes:  davinci_userfiles:  davinci_logs: 
davinci_initdb:  mysql_data:复制代码

小提示:docker-compose.yml环境变量配置K=V中不能出现空格,V也不能用双引号包裹

4. Docker Compose启动

docker-compose up -d 复制代码

5. 仅Docker启动(使用外部数据库)

docker run -p 58081:8080 -e MYSQL_CONN="jdbc:mysql://yourmysqlserver:3306/davinci0.3?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true" \
-e DB_USER="root" -e DB_PWD="pwd" \
-e MAIL_HOST="smtp.163.com"
-e MAIL_PORT="465"
-e MAIL_STMP_SSL="true" \
-e MAIL_USER="xxxxxx@163.com"  
-e MAIL_PWD="xxxxxxx" \
-e MAIL_NICKNAME="davinci_sys" \
edp963/davinci:v0.3.0-beta.4复制代码

6. 使用更丰富的配置

可以在宿主中添加一些配置文件,查看davinci配置:https://github.com/edp963/davinci/tree/master/config

然后docker run 时将其挂载到 /opt/davinci/config

docker run -p 58081:8080 -e MYSQL_CONN="jdbc:mysql://yourmysqlserver:3306/davinci0.3?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true" \
-e DB_USER="root" -e DB_PWD="pwd" \
-e MAIL_HOST="smtp.163.com"  -e MAIL_PORT="465" -e MAIL_STMP_SSL="true" \
-e MAIL_USER="xxxxxx@163.com"  -e MAIL_PWD="xxxxxxx" \
-e MAIL_NICKNAME="davinci_sys" \
-v/etc/davinci:/opt/davinci/config \
edp963/davinci:v0.3.0-beta.4

© 著作权归作者所有

宜信技术学院

宜信技术学院

粉丝 241
博文 140
码字总数 465076
作品 5
东城
私信 提问
davinci sd卡驱动学习笔记(三)

接下来我们来看看davincimmc.c文件,这个是我们真正需要修改或者移植的文件,对应的是davincimmc.ko模块; davincimmcsdinit-> platformdriverregister-> davincimmcprobe 相关代码如下: st...

wbf961127
2017/11/12
0
0
在ubuntu kylin优麒麟中安装视频编辑调色软件davinci resolve 16达芬奇

1、软硬件环境 根据官方文档介绍,davinci resolve目前仅支持nvidia显卡,因为要用到cuda,那……什么是cuda?请自行搜索。 根据nvidia的官方文档介绍,目前linux驱动支持的显卡至少是gefor...

gugudu
05/09
91
0
可视化服务平台 - Davinci

Davinci 是一个 DVAAS(Data Visualization as a Service)平台解决方案,面向业务人员/数据工程师/数据分析师/数据科学家,致力于提供一站式数据可视化解决方案。既可作为公有云/私有云独立...

匿名
03/05
12.7K
16
davinci-assembly_3.0.1-0.3.0-SNAPSHOT-dist-beta.2.zip

davinci-assembly_3.0.1-0.3.0-SNAPSHOT-dist-beta.2.zip 在哪里下载的

柯茂波
03/17
105
0
view 中的变量是怎么使用的,有什么意义所在

在Davinci中的view创建过程中有一个创建变量的操作。不明白是用来做什么使用。

LLP-1
前天
23
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux 之docker部署,走过的那些坑

初次使用docker, 多有不足,这里把坑一点点的记下来 概念篇 docker 是什么? 太多文字不同,书读的少, 不懂大大道理; 在我的理解, 它就是个沙箱环境; 在linux中 ,独立进程, 有着自己的小世界 使...

莫库什勒
34分钟前
5
0
vue class绑定 组件

本文转载于:专业的前端网站➬vue class绑定 组件 当在一个自定义组件上使用 class 属性时,这些类将被添加到该组件的根元素上面。这个元素上已经存在的类不会被覆盖。 例如,如果你声明了这个...

前端老手
今天
4
0
exist和in

exist和in select ..from table where exist (子查询) ; select ..from table where 字段 in (子查询) ; 如果主查询的数据集大,则使用In,效率高。 如果子查询的数据集大,则使用exist,效率高...

潦草的犀牛
今天
5
0
Android OkHttp + Retrofit 取消请求的方法

本文链接 前言 在某一个界面,用户发起了一个网络请求,因为某种原因用户在网络请求完成前离开了当前界面,比较好的做法是取消这个网络请求。对于OkHttp来说,具体是调用Call的cancel方法。 ...

shzwork
今天
7
0
并发编程之Callable异步,Future模式

Callable 在Java中,创建线程一般有两种方式,一种是继承Thread类,一种是实现Runnable接口。然而,这两种方式的缺点是在线程任务执行结束后,无法获取执行结果。我们一般只能采用共享变量或...

codeobj
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部