摘要:來源敏捷大數(shù)據(jù)作者湯波成宜信技術(shù)學(xué)院導(dǎo)讀之前喜歡的小伙伴兒在安裝部署遇見問題時(shí)需要在區(qū)等待技術(shù)人員的解答。現(xiàn)在不用怕啦,社區(qū)熱心用戶白菜君幫我們支持了一鍵啟動(dòng),以后只需寥寥幾行代碼,就能舒暢的起來了。
來源:敏捷大數(shù)據(jù)
作者:湯波成
宜信技術(shù)學(xué)院
?
導(dǎo)讀:之前喜歡Davinci的小伙伴兒在安裝部署Davinci遇見問題時(shí)需要在github issue區(qū)等待技術(shù)人員的解答。現(xiàn)在不用怕啦,社區(qū)熱心用戶白菜君幫我們支持了docker-composer一鍵啟動(dòng),以后只需寥寥幾行代碼,Davinci就能舒暢的run起來了。還等什么,趕緊部署起來吧~
敲重點(diǎn)
Davinci Docker原部署教程在這里:
https://github.com/edp963/dav...
里面會(huì)不定時(shí)更新
記得收藏啊!!
下面是部署教程:
一、環(huán)境要求
安裝docker后的 windows, linux, mac。
檢查是否有docker-compose命令(安裝docker后默認(rèn)會(huì)有,否則請手動(dòng)安裝)。
二、完整步驟
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 復(fù)制代碼
完成!
你沒看錯(cuò)!
就這么簡單的完成了!
這樣就可以安裝部署Davinci了!
再也不用擔(dān)心安裝Davinci時(shí)遇到問題了!
然鵝,在部署Docker鏡像過程中,我們的白菜君是怎么想的呢?讓我們繼續(xù)往下看:
內(nèi)容會(huì)不定時(shí)更新哦,所以請大家收藏這個(gè)地址:
https://github.com/edp963/dav...
三、Docker支持環(huán)境變量列表
四、原理分析
制作Davinci Docker鏡像
1、Dockfile分析
FROM java:8-jre LABEL MAINTAINER="edp_support@groups.163.com" # 從github上下載分發(fā)包并解壓 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 # 數(shù)據(jù)庫初始化腳本,等待數(shù)據(jù)庫就緒后啟動(dòng)spring boot ADD bin/start.sh /opt/davinci/bin/start.sh # docker鏡像是靜態(tài)的,因此配置文件中的配置需要用環(huán)境變量傳遞,詳見12factor# https://12factor.net/zh_cn/ ADD config/application.yml /opt/davinci/config/application.yml # 預(yù)設(shè)davinci必備的兩個(gè)環(huán)境變量ENV DAVINCI3_HOME /opt/davinciENV PHANTOMJS_HOME /opt/phantomjs-2.1.1 WORKDIR /opt/davinci # 為什么使用CMD而不是ENTRYPOINT? 因?yàn)镃MD可以在docker run的時(shí)候被替代# 在使用compose或K8S時(shí),很有可能要在啟動(dòng)前執(zhí)行其它腳本,而不是直接運(yùn)行# start-server.sh# 在多帶帶docker run且不附加任何命令時(shí),以下命令默認(rèn)執(zhí)行 CMD ["./bin/start-server.sh"] EXPOSE 8080復(fù)制代碼
start.sh
#!/bin/bash # 將sql腳本經(jīng)過mysql8兼容處理后,寫入/initdb目錄# /initdb 目錄是與mysql容器共享目錄# mysql容器將在啟動(dòng)時(shí)執(zhí)行 /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中啟動(dòng)順序管理交給了容器自己# 詳見 https://docs.docker.com/compose/startup-order/# 因此我們需要用curl探測mysql端口,當(dāng)接受數(shù)據(jù)字節(jié)大于0時(shí)認(rèn)為# 數(shù)據(jù)庫可以連通,接下來我們執(zhí)行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復(fù)制代碼
2、構(gòu)建鏡像
docker build -t="edp963/davinci:v0.3.0-beta.4" .復(fù)制代碼
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就緒后再啟動(dòng)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作數(shù)據(jù)初始化 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:復(fù)制代碼
小提示:docker-compose.yml環(huán)境變量配置K=V中不能出現(xiàn)空格,V也不能用雙引號包裹
4、Docker Compose啟動(dòng)
docker-compose up -d 復(fù)制代碼
5、僅Docker啟動(dòng)(使用外部數(shù)據(jù)庫)
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復(fù)制代碼
6、使用更豐富的配置
可以在宿主中添加一些配置文件,查看davinci配置:https://github.com/edp963/dav...
然后docker run 時(shí)將其掛載到 /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
?
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/27753.html
摘要:轉(zhuǎn)發(fā)通過,將請求通過負(fù)載均衡,均衡給后端處理的服務(wù)。圖床同時(shí)也支持同步上傳回調(diào)通知的方式,將圖片上傳結(jié)果反饋給業(yè)務(wù)方。 Hulk 圖床是支持 360 公司絕大部分業(yè)務(wù)的圖片服務(wù),支持多種圖片處理功能,如:裁剪、壓縮、濾鏡、pHash 計(jì)算、人臉識(shí)別、格式轉(zhuǎn)換、gif 首幀提取……等等,支持的業(yè)務(wù)線包括:搜索、圖搜、新聞、信息流、廣告……等等,每天 CDN 回源圖床后端 150+ 億 P...
摘要:轉(zhuǎn)發(fā)通過,將請求通過負(fù)載均衡,均衡給后端處理的服務(wù)。圖床同時(shí)也支持同步上傳回調(diào)通知的方式,將圖片上傳結(jié)果反饋給業(yè)務(wù)方。 Hulk 圖床是支持 360 公司絕大部分業(yè)務(wù)的圖片服務(wù),支持多種圖片處理功能,如:裁剪、壓縮、濾鏡、pHash 計(jì)算、人臉識(shí)別、格式轉(zhuǎn)換、gif 首幀提取……等等,支持的業(yè)務(wù)線包括:搜索、圖搜、新聞、信息流、廣告……等等,每天 CDN 回源圖床后端 150+ 億 P...
閱讀 790·2023-04-26 03:04
閱讀 2866·2021-11-15 18:10
閱讀 1195·2021-09-03 10:28
閱讀 1134·2019-08-30 15:53
閱讀 889·2019-08-30 12:45
閱讀 1959·2019-08-30 11:03
閱讀 2868·2019-08-29 14:01
閱讀 2931·2019-08-28 18:24