Davinci一鍵部署 | 論如何三句代碼跑起Davinci

來源:敏捷大數據java

做者:湯波成mysql

宜信技術學院linux

 

導讀:以前喜歡Davinci的小夥伴兒在安裝部署Davinci碰見問題時須要在github issue區等待技術人員的解答。如今不用怕啦,社區熱心用戶白菜君幫咱們支持了docker-composer一鍵啓動,之後只需寥寥幾行代碼,Davinci就能舒暢的run起來了。還等什麼,趕忙部署起來吧~git

敲重點github

Davinci Docker原部署教程在這裏:spring

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

裏面會不定時更新docker

記得收藏啊!!數據庫

下面是部署教程:windows

1、環境要求

安裝docker後的 windows, linux, mac。

檢查是否有docker-compose命令(安裝docker後默認會有,不然請手動安裝)。

2、完整步驟

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

3、Docker支持環境變量列表

4、原理分析

製做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
相關文章
相關標籤/搜索