1. 程式人生 > 其它 >Docker方式部署V2X-Hub

Docker方式部署V2X-Hub

1 最新版本安裝

需要提前安裝好Docker和Docker Compose。

  1. 執行docker-compose up -d,這個命令將把所有容器部署為守護程序服務。
  2. 如果您想跟蹤V2X-Hub服務的日誌,您也可以選擇執行docker-compose up v2xhub,這將以同樣的方式啟動服務,但也將跟蹤V2X-Hub容器的日誌。結果應該是執行三個容器:mysql (database) , php (web-ui) and v2xhub ( service )。
  3. 導航進入V2X-Hub/configuration/amd64/,執行add_v2xhub_user.sh指令碼,指令碼位置在:V2X-Hub/configuration/amd64/mysql/
    ,安裝MySQL -client命令列,並新增一個V2X-Hub使用者到MySQL表。例如:(ex: ./add_v2xhub_user.bash)。它將提示您為V2X-Hub登入建立和確認憑證。這個指令碼也會提示你mysql的根證書,它們是在上面的Docker祕密中配置的。
  4. 導航進入https://<v2x-hub ip>:19760,單擊可接受風險的按鈕並新增SSL證書。
  5. 導航至https://<v2x-hub ip>並登入。
  6. 停止所有容器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。