Docker安装不再赘述,本次安装的版本是:
[root@localhost deploy]# docker --version
Docker version 20.10.2, build 2291f61
Docker-compose安装也不再赘述,本次安装版本如下:
[root@localhost deploy]# docker-compose --version
docker-compose version 1.27.4, build 40524192
下载服务端代码
https://github.com/JunManYuanLong/TcloudServer
转到deploy目录下,拉取所有镜像
[root@localhost deploy]# docker-compose pull
然后修改local_config.py
文件,docker部署只改这一处,直接复制覆盖就行了。
SQLALCHEMY_DATABASE_URI = 'mysql://root:tc123456@mysql:3306/demo?charset=utf8'
修改docker-compose.yml。注意:因为posegres镜像启动需要密码,不然会启动不起来。这个github上没给出。
version: '3.5'
services:
tcloud:
image: h1.ywopt.com/ywopt.com/tcloud:demo
restart: always
volumes:
- "./local_config.py:/tcloud/local_config.py"
mysql:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: "tc123456"
volumes:
- "./init:/docker-entrypoint-initdb.d/"
- "./volumes/mysql:/var/lib/mysql"
- "./tcloud.cnf:/etc/mysql/conf.d/tcloud.cnf"
ports:
- 3306:3306
kong:
image: kong:latest
restart: always
environment:
KONG_DATABASE: postgres
KONG_PG_HOST: kong_database
KONG_CASSANDRA_CONTACT_POINTS: kong_database
KONG_PG_PASSWORD: kong
KONG_ADMIN_LISTEN: 0.0.0.0:8001
KONG_ADMIN_LISTEN_SSL: 0.0.0.0:8444
volumes:
- ./volumes/logs:/home/TcloudServer/deploy/volumes/kong/logs
ports:
- 9000:8000
links:
- kong_database
kong_database:
image: postgres:9.5
restart: always
environment:
POSTGRES_USER: kong
POSTGRES_DB: kong
POSTGRES_PASSWORD: kong
volumes:
- ./volumes/kong_database:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "kong"]
interval: 5s
timeout: 5s
retries: 5
konga:
image: pantsel/konga
restart: always
ports:
- 9001:1337
environment:
- DB_ADAPTER=postgres
- DB_HOST=kong_database
- DB_USER=kong
- DB_PASSWORD=kong
networks:
default:
name: tcloud_demo
driver: bridge
再初始化kong的数据库(如果报错,再执行一次,成功的话会显示Database is up-to-date
)
[root@localhost deploy]# docker-compose up -d kong_database
// 容器启动以后,数据库会本地挂载到 ./volumes/kong_database 里面
// 但由于权限问题,初始化数据库会失败,所以要先对该文件赋予权限
[root@localhost deploy]# chmod -R 777 ./volumes/kong_database
[root@localhost deploy]# docker-compose run --rm kong kong migrations bootstrap
然后启动所有项目
[root@localhost deploy]# docker-compose up -d
查看启动状态
[root@localhost deploy]# docker-compose ps
如果所有状态均为up,则运行正常,否则sudo docker logs
查看日志
打开konga(kong的管理页面,http://localhost:9001
),注册账号并登录,再新建连接,地址为http://kong:8001
\
成功后,进入SNAPSHOT页面,点击IMPORT FROM FILE,选择我们的snapshot_3.json
文件,并进入DETAILS中RESTORE,全选导入,可能会出错,再执行一次即可,此时我们的网关服务已经运行完成,地址为http://localhost:9000
ps: 数据库初始化文件是init/init.sql,可以通过sudo docker-compose down -v
再删除volume/mysql
挂载目录之后,sudo docker-compose up -d
来重新初始化数据库。
注意:github上是kong.json,这个文件有问题,需要去QQ群中下载snapshot_3.json文件。
安装node环境,本次node版本:
[root@localhost node]# node -v
v10.9.0
下载前端项目
https://github.com/JunManYuanLong/Tcloud
在前端项目下,安装依赖包
[root@localhost Tcloud]# npm install --registry=https://registry.npm.taobao.org
修改config/dev.env.js
中的BASE_URL
地址为上面的后端地址http://localhost:9000
运行npm run dev
即可打开本项目
[root@localhost Tcloud]# npm run dev