Docker方式部署V2X-Hub
阿新 • • 發佈:2022-05-20
1 最新版本安裝
需要提前安裝好Docker和Docker Compose。
- 執行
docker-compose up -d
,這個命令將把所有容器部署為守護程序服務。 - 如果您想跟蹤V2X-Hub服務的日誌,您也可以選擇執行
docker-compose up v2xhub
,這將以同樣的方式啟動服務,但也將跟蹤V2X-Hub容器的日誌。結果應該是執行三個容器:mysql (database) , php (web-ui) and v2xhub ( service )。 - 導航進入
V2X-Hub/configuration/amd64/
,執行add_v2xhub_user.sh
指令碼,指令碼位置在:V2X-Hub/configuration/amd64/mysql/
(ex:
./add_v2xhub_user.bash)
。它將提示您為V2X-Hub登入建立和確認憑證。這個指令碼也會提示你mysql的根證書,它們是在上面的Docker祕密中配置的。 - 導航進入
https://<v2x-hub ip>:19760
,單擊可接受風險的按鈕並新增SSL證書。 - 導航至
https://<v2x-hub ip>
並登入。 - 停止所有容器
docker-compose down
。
這裡走入了一個誤區,自以為對Docker使用比較熟練,直接去拉取了映象,想著跑起來,發現很多環境初始化都不行,繞了一大圈,還是回到官方文件,按照官方說明來操作。
實際上,還是通過官方的docker-compose比較方便。
在伺服器上,新建個目錄,如:/data/v2x-hub/
,在目錄下,將docker-compose.yml檔案放在這裡,docker-compose.yml檔案內容如下:
version: '3.7' services: db: image: mysql:5.7 container_name: mysql restart: always environment: - MYSQL_DATABASE=IVP - MYSQL_USER=IVP - MYSQL_PASSWORD_FILE=/run/secrets/mysql_password - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_root_password network_mode: host secrets: - mysql_password - mysql_root_password volumes: - ./mysql/localhost.sql:/docker-entrypoint-initdb.d/localhost.sql - ./mysql/port_drayage.sql:/docker-entrypoint-initdb.d/port_drayage.sql php: image: usdotfhwaops/php:7.2.2 container_name: php network_mode: host depends_on: - db - v2xhub stdin_open: true tty: true v2xhub: image: usdotfhwaops/v2xhubamd:7.2.2 container_name: v2xhub network_mode: host restart: always depends_on: - db environment: - MYSQL_PASSWORD=/run/secrets/mysql_password secrets: - mysql_password volumes: - ./logs:/var/log/tmx - ./MAP:/var/www/plugins/MAP port_drayage_webservice: image: usdotfhwaops/port-drayage-webservice:7.2.2 container_name: port_drayage_webservice network_mode: host secrets: mysql_password: file: ./secrets/mysql_password.txt mysql_root_password: file: ./secrets/mysql_root_password.txt
切記,需要在同目錄下在新建一個secrets資料夾
,在裡面新建兩個檔案,mysql_password.txt和mysql_root_password.txt用來儲存MySQL的密碼。
還有指令碼檔案,也需要再目錄下移植過來。
然後啟動:docker-compose up -d
。
不過通過官方的安裝指令碼可以按照Docker和Docker Compose,因為自己之前伺服器已經安裝過,就沒有再執行安裝指令碼。
2 坑點
2.1 mysql_password.txt
第一次我是直接自己編輯的mysql_password.txt檔案,執行啟動一直報錯。提示無法連線MySQL。
遂去看官方Issues,執行tr -d '\n' < mysql_password.txt > tmp; mv tmp mysql_password.txt
解決。
2.2 訪問網站一直進不去,沒有賬戶密碼,執行add_v2xhub_user.bash
一直報錯。
害,簡單,去看下指令碼內容,無非就是給IVP.user表新增了條資料唄。
手動通過Navicat連線上,自己新增一條,Over。