写点什么

论如何三句代码跑起 Davinci

  • 2020-02-11
  • 本文字数:6246 字

    阅读完需:约 20 分钟

论如何三句代码跑起Davinci

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




敲重点




Davinci Docker 原部署教程在这里:


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


里面会不定时更新


记得收藏啊!!


下面是部署教程


一、环境要求


  • 安装 docker 后的 windows, linux, mac。

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


二、完整步骤


col 1col 2
1<span style=``"font-family: 黑体, SimHei;"``>git clone https:``//github.com/edp963/davinci-docker.git<br>cd /d davinci-docker<br># docker build -t="edp963/davinci:v0.3.0-beta.4" .<br># 修改docker-compose.yml中邮箱配置docker-compose up -d<br></span>


完成!


你没看错!


就这么简单的完成了!


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


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


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


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


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


三、Docker 支持环境变量列表


1553480511073059155.png


四、原理分析


制作 Davinci Docker 镜像




  1. Dockfile 分析


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


start.sh


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


  1. 构建镜像


col 1col 2
1<span style=``"font-family: 黑体, SimHei;"``>docker build -t=``"edp963/davinci:v0.3.0-beta.4" .<br></span>


  1. Docker Compose


col 1col 2
1<span style=``"font-family: 黑体, SimHei;"``>version: ``'3.6'``services: davinci: <br>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: <br>- 58080:8080 # 等待mysql就绪后再启动spring boot主程序 command: ["./bin/start.sh",<br>"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 <br>volumes: davinci_userfiles: davinci_logs: <br>davinci_initdb: mysql_data:<br></span>


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


  1. Docker Compose 启动


col 1col 2
1<span style=``"font-family: 黑体, SimHei;"``>docker-compose up -d<br></span>


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


col 1col 2
1<span style=``"font-family: 黑体, SimHei;"``>docker run -p ``58081``:``8080 -e MYSQL_CONN=``"jdbc:mysql://yourmysqlserver:3306/davinci0.3?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true" \<br>-e DB_USER=``"root" -e DB_PWD=``"pwd" \<br>-e MAIL_HOST=``"smtp.163.com"``<br>-e MAIL_PORT=``"465"``<br>-e MAIL_STMP_SSL=``"true" \<br>-e MAIL_USER=``"xxxxxx@163.com" <br>-e MAIL_PWD=``"xxxxxxx" \<br>-e MAIL_NICKNAME=``"davinci_sys" \<br>edp963/davinci:v0.``3.0``-beta.``4``<br></span>


  1. 使用更丰富的配置


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


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


col 1col 2
1<span style=``"font-family: 黑体, SimHei;"``>docker run -p ``58081``:``8080 -e MYSQL_CONN=``"jdbc:mysql://yourmysqlserver:3306/davinci0.3?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true" \<br>-e DB_USER=``"root" -e DB_PWD=``"pwd" \<br>-e MAIL_HOST=``"smtp.163.com" -e MAIL_PORT=``"465" -e MAIL_STMP_SSL=``"true" \<br>-e MAIL_USER=``"xxxxxx@163.com" -e MAIL_PWD=``"xxxxxxx" \<br>-e MAIL_NICKNAME=``"davinci_sys" \<br>-v/etc/davinci:/opt/davinci/config \<br>edp963/davinci:v0.``3.0``-beta.``4``</span>


本文转载自宜信技术学院网站。


原文链接:http://college.creditease.cn/detail/226


2020-02-11 20:22627

评论

发布
暂无评论
发现更多内容

什么是边缘计算?边缘计算技术的优势与挑战

3DCAT实时渲染

实时渲染 边缘计算平台 边缘计算技术

若依vue前端 报错error:0308010C:digital envelope routines::unsupported

百度搜索:蓝易云

Lightroom Classic 2025(LRC2025)直装版

你的猪会飞吗

lrc2025下载 Lightroom Classic 2025

PAI 大语言模型评测平台现已支持裁判员模型评测

阿里云大数据AI技术

人工智能 大语言模型 PAI 模型评测

淘系商品详情数据接口全解析:探索Taobao API的无限可能

代码忍者

pinduoduo API API 性能测试

TunesKit iPhone Unlocker for Mac(iPhone设备解锁工具)

Mac相关知识分享

功能强大的字幕编辑工具TunesKit Subtitle Editor for Mac

Mac相关知识分享

CleanMyMac最新版本发布,全新界面与功能引领Mac优化潮流

禁止废话

#Mac 软件包 CleanMyMac X 清理软件 苹果电脑使用

爱旭N型ABC组件闪耀粤水电集采,领跑集中式光伏新篇章

Geek_2d6073

Bitmap 和 布隆过滤器傻傻分不清?你这不应该啊

程序员小富

Java redis 面试 布隆过滤器

修复损坏视频的理想选择TunesKit Video Repair for mac视频修复工具

Mac相关知识分享

视频修复

FastRawViewer for mac(Raw查看器)

Mac相关知识分享

施工项目进度管理系统怎么选?9款工具评测

爱吃小舅的鱼

施工项目进度管理系统

《使用Gin框架构建分布式应用》阅读笔记:p101-p107

codists

Go gin框架 编程人

实用便捷的音频录制工具TunesKit Audio Capture for mac

Mac相关知识分享

哪些项目管理工具最实用?10款推荐清单

爱吃小舅的鱼

项目管理工具

AI手机的启明星:从分级标准到智能体手机

脑极体

AI

centos编译安装的php多版本切换

百度搜索:蓝易云

华为云开源引领,KubeEdge晋级CNCF毕业项目

华为云原生团队

云计算 容器 云原生 kubeedge

提升项目管理效率?9款软件帮你实现

爱吃小舅的鱼

项目进度软件

Arm架构Ubuntu使用Docker安装Gitlab并使用

百度搜索:蓝易云

Mybatis的<where>,<if>等标签用法

百度搜索:蓝易云

特斯拉自动驾驶出租车计划变成泡影?联想与Meta合作,推出面向PC的个人AI智能体AI Now|AI日报

可信AI进展

单色相机的原始文件转换为 DNG 格式LibRaw Monochrome2DNG for Mac

Mac相关知识分享

Pencils Protocol 用户特权:DAPP持有者将长期获得生态空投

大瞿科技

项目延期频发怎么办?试试这8款工具

爱吃小舅的鱼

项目排期进度软件

硬盘分区数据恢复软件哪个好 硬盘分区数据如何恢复正常

禁止废话

EasyRecovery 电脑文件 数据恢复软件 硬盘数据恢复 软件包

修复各种 iOS 设备TunesKit iOS System Recovery

Mac相关知识分享

linux三剑客之awk命令详解

百度搜索:蓝易云

LCD、LED、OLED显示技术发展对比

Dylan

技术 科技 LED OLED lcd

Perfectly Clear Video for Mac(AI视频增强工具)

Mac相关知识分享

论如何三句代码跑起Davinci_安全_汤波成_InfoQ精选文章