天天看点

davinci docker部署_一键部署可视应用平台Davinci,让你离数据可视化更进一步!环境要求完整步骤Docker支持环境变量列表原理分析

之前喜欢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.gitcd /d davinci-docker# docker build -t="edp963/davinci:v0.3.0-beta.4" .# 修改docker-compose.yml中邮箱配置docker-compose up -d 
           

完成!

你没看错!

就这么简单的完成了!

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

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

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

内容会不定时更新哦,所以请大家收藏这个地址:GitHub - edp963/davinci-docker: Davinci Docker Deployment

Docker支持环境变量列表

davinci docker部署_一键部署可视应用平台Davinci,让你离数据可视化更进一步!环境要求完整步骤Docker支持环境变量列表原理分析

原理分析

制作Davinci Docker镜像

1. Dockfile分析

FROM java:8-jreLABEL MAINTAINER="[email protected]"# 从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 bootADD 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.1WORKDIR /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 '1iSET 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 -ehost="$1"shiftcmd="[email protected]"until [ $(curl -I -m 10 -o /dev/null -s -w %{size_download} $host) -gt 0 ]; do >&2 echo "database is unavailable - sleeping" sleep 1donesource $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 - [email protected] - MAIL_PWD=xxxxxxxx - MAIL_NICKNAME=davinci image: "edp963/davinci:v0.3.0-beta.4" ports: - 58080:8080 # 等待mysql就绪后再启动spring boot主程序 command: ["./bin/start.sh