thinkphp6 command(自定义指令)_梧桐树tp6备忘录

tarsweb平台搭建

环境推荐使用:Centos7

docker 环境搭建可以自己在网上找教程,文章中就不再说明了。

docker-compose 安装

sudo curl -L https://github.com/docker/compose/releases/download//docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

DaoCloud 镜像配置

curl -L https://get.daocloud.io/docker/compose/releases/download//docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

tars 环境搭建 docker-compose 文件

version: "3"

services:
  tars:
    image: tarscloud/tars:php
    # 自定义容器名称
    container_name: tars
    # 自定义宿主机与容器之间的端口映射
    ports:
      - ":"
      - ":"
      - ":"
    # 挂载宿主机与容器之间的文件路径
    volumes:
      - /c/Users/tars_data:/data
      - /c/Users:/root/TarsShare
    # 自定义所需环境变量
    environment:
      # 此选项用于将Tars的系统进程的数据目录挂载到 /data 目录之下
      - MOUNT_DATA=true
      # 数据库ip 可以使用容器名来获取动态分配的ip地址
      - DBIP=mysql
      # 数据库端口
      - DBPort=
      # 数据库使用者
      - DBUser=root
      # 数据库密码
      - DBPassword=tars2015
    # 依赖服务
    depends_on:
      - mysql
    # 所属网络
    networks:
      - kong-net
    # 设置容器访问宿主机权限
    privileged: true
    restart: always

  mysql:
    image: mysql:
    container_name: mysql
    ports:
      - ":"
    volumes:
      # 挂载数据库目录
      - "/c/Users/mysql_data:/var/lib/mysql"
    environment:
      # 设置数据库密码
      - "MYSQL_ROOT_PASSWORD=tars2015"
    networks:
      - "kong-net"
    privileged: true
    restart: "always"
    command:
      # 设置支持全零的date字段值
      - --sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
      # window下mysql不能使用aio
      - --innodb_use_native_aio=0

  nginx:
    image: "nginx:latest"
    container_name: "nginx"
    privileged: true
    ports:
      - ":"
      - ":"
      - ":"
    volumes:
      - "/c/Users/nginx/web:/usr/share/nginx/html"
      - "/c/Users/nginx/vhost:/etc/nginx/conf.d"
      - "/c/Users/nginx/nginx.conf:/etc/nginx/nginx.conf"
    depends_on:
      - tars
    networks:
      - "kong-net"

  redis:
    image: "redis:latest"
    container_name: "redis"
    restart: "always"
    volumes:
      - "/c/Users/redis:/etc/redis"
    ports:
      - ":"
    command:
      # 数据本地写入应用
      - --appendonly yes
    networks:
      - "kong-net"

  kong:
    image: "kong:latest"
    container_name: "kong"
    ports:
      - ":"
      - ":"
      - ":"
      - ":"
    environment:
      # kong 信息输出设置
      - "KONG_ADMIN_ACCESS_LOG=/dev/stdout"
      - "KONG_ADMIN_ERROR_LOG=/dev/stderr"
      # 监听ip + port
      - "KONG_ADMIN_LISTEN=:"
      - "KONG_CASSANDRA_CONTACT_POINTS=kong-postgres"
      # pg数据库名
      - "KONG_PG_DATABASE=kong"
      # pg 主机名
      - "KONG_PG_HOST=kong-postgres"
      # pg数据库
      - "KONG_DATABASE=postgres"
      # pg数据库密码
      - "KONG_PG_PASSWORD=tars2015"
      # 用户限定
      - "KONG_PG_USER=kong"
      - "KONG_PROXY_ACCESS_LOG=/dev/stdout"
      - "KONG_PROXY_ERROR_LOG=/dev/stderr"
    networks:
      - "kong-net"
    # 依赖服务
    depends_on:
      - "kong-postgres"
      - "kong-migrations"
    restart: "always"

  kong-postgres:
    image: "postgres:latest"
    container_name: "kong-postgres"
    ports:
      - ":"
    environment:
      - "POSTGRES_USER=kong"
      - "POSTGRES_DB=kong"
      - "POSTGRES_PASSWORD=tars2015"
      # 绑定pg数据目录
      - "PGDATA=/tmp/postgres_data"
    restart: "always"
    networks:
      - "kong-net"
    volumes:
      - "/c/Users/postgres_data:/tmp/postgres_data"

  kong-migrations:
    image: "kong:latest"
    container_name: "kong-migrations"
    # 这个服务就是用来执行这个命令的
    command: "kong migrations bootstrap"
    environment:
      - "KONG_CASSANDRA_CONTACT_POINTS=kong-postgres"
      - "KONG_PG_DATABASE=kong"
      - "KONG_PG_HOST=kong-postgres"
      - "KONG_DATABASE=postgres"
      - "KONG_PG_PASSWORD=tars2015"
      - "KONG_PG_USER=kong"
    depends_on:
      - "kong-postgres"
    links:
      - "kong-postgres:kong-postgres"
    networks:
      - "kong-net"
    restart: "on-failure"

  kong-dashboard:
    image: "hansonyao/kong-dashboard:latest"
    container_name: "kong-dashboard"
    restart: "always"
    ports:
      - ":"
    depends_on:
      - "kong-postgres"
      - "kong-migrations"
      - "kong"
    # 服务部署完成执行的命令,bboysoul用户名tars2015密码
    command: "start --kong-url http://kong: --basic-auth bboysoul=tars2015"
    networks:
      - "kong-net"

networks:
  kong-net:
    driver: "bridge"

启动,配置更新重启

docker-compose up -d

关闭

docker-compose down

看见服务状态全部为 UP 就说明启动正常了,如果是有启动不正常的情况出现,我们可以尝试

docker logs tars

来查看具体是报什么错误了,然后再具体情况具体解决

查看具体 docker 容器的 ip 可以使用如下命令

docker inspect tars | grep IPAddress

要看具体的挂载,端口,网络的话也是使用上面的命令,不过要将 grep 去掉。

原文链接:,转发请注明来源!