Docker方式部署V2X-Hub
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/
,安装MySQL -client命令行,并添加一个V2X-Hub用户到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。