docker搭建tars框架
一、安装docker
不管是windows还是mac以及linux系统
首先去下载docker官网下载docker软件,并且安装好,具体安装方式我就不详细描述
docker官网
mac系统遇到一些问题
那么以上问题如何解决?
可以使用官网上的命令相关的来安装
sudo hdiutil attach Docker.dmg
sudo /Volumes/Docker/Docker.app/Contents/MacOS/install
sudo hdiutil detach /Volumes/Docker
使用以上命令后就不会出现这样问题了
二、配置yaml
安装完后,使用yaml来搭建相关的环境
将所有的配置文件写好
引用了 目录 | TarsDocs 相关内容
version: "3"services:
mysql:
image: mysql:5.6
container_name: tars-mysql
ports:
- "3307:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: "123456"
volumes:
- ./mysql/data:/var/lib/mysql:rw
networks:
internal:# 网络配置名 看到备注1
ipv4_address: 172.25.1.2
framework:
image: tarscloud/framework:v3.0.15
container_name: tars-framework
ports:
- "3000:3000"
restart: always
networks:
internal:
ipv4_address: 172.25.1.3
environment:
MYSQL_HOST: "172.25.1.2"
MYSQL_ROOT_PASSWORD: "123456"
MYSQL_USER: "root"
MYSQL_PORT: 3306
REBUILD: "false"
INET: eth0
SLAVE: "false"
volumes:
- ./framework/data:/data/tars:rw # rw 这个一定要,否则会导致写入失败
- ./source/Shanghai:/etc/localtime # 这个不建议开启,最好注释掉,不然会导致节点无法开启
depends_on:
- mysql
node:
image: tarscloud/tars-node:latest
container_name: tars-node
restart: always
networks:
internal:
ipv4_address: 172.25.1.5
volumes:
- ./node/data:/data/tars:rw # rw 这个一定要,否则会导致写入失败
- ./source/Shanghai:/etc/localtime # 这个不建议开启,最好注释掉,不然会导致节点无法开启
environment:
INET: eth0
WEB_HOST: http://172.25.1.3:3000
ports:
- "9000-9010:9000-9010"
depends_on:
- frameworknetworks:
internal:# 备注1
driver: bridge
ipam:
config:
- subnet: 172.25.1.0/16
相关的nginx,php,redis等,需要自行配置好。
这些配置完后,执行
docker compose up (拉取安装镜像)
docker compose down (删除镜像)
执行这个命令后会,下图的内容会被删除
但是下图的内容不会被删除,切记,最好自己删除一下
三、遇到的问题
1、(HTTP code 400) unexpected - failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/host_mnt/Users/fangchaocheng/project/nginx/node/source" to rootfs at "/etc/localtime": mount /host_mnt/Users/fangchaocheng/project/nginx/node/source:/etc/localtime (via /proc/self/fd/6), flags: 0x5000: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
这个报错的时候,说明蓝色部分没有被注释掉,需要注释掉
volumes:
- ./node/data:/data/tars:rw # rw 这个一定要,否则会导致写入失败
- ./source/Shanghai:/etc/localtime # 这个不建议开启,最好注释掉,不然会导致节点无法开启
2、mysql连接报错 Authentication plugin 'caching_sha2_password' cannot be loaded
首先进入mysql ,进入mysql库中
然后执行
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
3、mysql_real_connect: SSL connection error: unknown error number
原因:关闭SSL加密
SHOW VARIABLES LIKE '%ssl%';
解决方法:找到my.ini或者my.cnf 然后在文件里面加上skip_ssl
再去查询SHOW VARIABLES LIKE '%ssl%';
4、docker mysql Access denied for user ‘root‘@‘localhost‘ (using password: YES)
(using password: YES)
解决方法:找到my.cnf 或者my.ini
然后在
添加一行skip-grant-tables 然后重启该容器
1、执行修改密码之前先刷新下权限,不然可能会提示在skip-grant-tables模式下无法修改密码
flush privileges;
2、修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
3、刷新权限
flush privileges;
4、修改完成,这时就需要将我们在第一步添加的skip-grant-tables删除掉,然后在restart mysql容器以下
5、这时就可以用新密码进行登录了
6、还有一种方法可以试以下,好像只输入用户名直接登录可以登录进去在这种情况下…然后在修改密码进行登录