docker搭建tars框架

发布于:2025-02-23 ⋅ 阅读:(11) ⋅ 点赞:(0)

一、安装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、还有一种方法可以试以下,好像只输入用户名直接登录可以登录进去在这种情况下…然后在修改密码进行登录


网站公告

今日签到

点亮在社区的每一天
去签到