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。

posted @ 2022-05-20 17:24  爱是与世界平行  阅读(89)  评论(0编辑  收藏  举报