SEATAdocker-compose部署

2023-05-16

docker-compose 文件

version: '3'
services:
  mysql7:
    image: mysql:5.7
    container_name: mysql7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      TZ: Asia/Shanghai
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --default-authentication-plugin=mysql_native_password
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M;
    ports:
      - ${port}:3306
    volumes:
      # 映射SQL文件
      - ./mysql/init:/docker-entrypoint-initdb.d
      - ./mysql/sql:/sql
      - ./mysql/data:/var/lib/mysql
  nacos:
    image: nacos/nacos-server:v2.0.4
    container_name: nacos
    environment:
      # 支持主机名可以使用hostname,否则使用ip,默认ip
      - PREFER_HOST_MODE=ip
      - TZ=Asia/Shanghai
      # 单机模式
      - MODE=standalone
      # 数据源平台 支持mysql或不保存empty
      - SPRING_DATASOURCE_PLATFORM=mysql
      # mysql配置,!!!attention必须是mysql所在主机IP
      - MYSQL_SERVICE_HOST=${MYSQL_HOST}
      - MYSQL_SERVICE_PORT=${MYSQL_PORT}
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=${MYSQL_SERVICE_PASSWORD}
      - MYSQL_SERVICE_DB_NAME=${MYSQL_SERVICE_DB_NAME}
    env_file:
      - ./.env
    volumes:
      - ./nacos/logs:/home/nacos/logs
    ports:
      # web port
      - ${web port}:8848
      # client grpc to server,服务请求
      - ${client port}:9848
      # server grpc to server,服务同步
      - ${server port}:9849
    restart: always
    depends_on:
      - mysql7
  seata-server:
    restart: always
    image: seataio/seata-server:1.4.0
    environment:
      - SEATA_IP=${SEATA_IP}
      - SEATA_PORT=${SEATA_PORT}
      - SEATA_CONFIG_NAME=file:/root/seata-config/registry
    volumes:
      - ./seata/conf:/root/seata-config
      - ./seata/logs:/root/logs
    ports:
      - "${SEATA_PORT}:${SEATA_PORT}"
    container_name: "seata-server"
    env_file:
      - ./.env
    depends_on:
      - mysql7
      - nacos

前提配置

目录结构
在这里插入图片描述

  • 创建seata 文件夹
	mkdir seata
  • 编写config.txt 内容如下
service.vgroupMapping.${spring.application.name}-group=default
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://${host}:${port}/ry-seata?useUnicode=true
store.db.user=root
store.db.password=${pwd}
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
  • 编写registry.conf 内容如下
registry {
  type = "nacos"
  nacos {
    application = "seata-server"
    serverAddr = "${nacosHost:port}"
    group = "SEATA_GROUP"
    namespace = ""
    cluster = "default"
    username = "${nacosLoginName}"
    password = "${pwd}"
  }
}

config {
  type = "nacos"
  nacos {
    serverAddr = "${nacosHost:port}"
    namespace = ""
    group = "SEATA_GROUP"
    username = "${nacosLoginName}"
    password = "${pwd}"
  }
}
  • 编写nacos-config.sh 内容如下
#!/usr/bin/env bash
# Copyright 1999-2019 Seata.io Group.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at、
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

while getopts ":h:p:g:t:u:w:" opt
do
  case $opt in
  h)
    host=$OPTARG
    ;;
  p)
    port=$OPTARG
    ;;
  g)
    group=$OPTARG
    ;;
  t)
    tenant=$OPTARG
    ;;
  u)
    username=$OPTARG
    ;;
  w)
    password=$OPTARG
    ;;
  ?)
    echo " USAGE OPTION: $0 [-h host] [-p port] [-g group] [-t tenant] [-u username] [-w password] "
    exit 1
    ;;
  esac
done

urlencode() {
  for ((i=0; i < ${#1}; i++))
  do
    char="${1:$i:1}"
    case $char in
    [a-zA-Z0-9.~_-]) printf $char ;;
    *) printf '%%%02X' "'$char" ;;
    esac
  done
}

if [[ -z ${host} ]]; then
    host=localhost
fi
if [[ -z ${port} ]]; then
    port=8848
fi
if [[ -z ${group} ]]; then
    group="SEATA_GROUP"
fi
if [[ -z ${tenant} ]]; then
    tenant=""
fi
if [[ -z ${username} ]]; then
    username=""
fi
if [[ -z ${password} ]]; then
    password=""
fi

nacosAddr=$host:$port
contentType="content-type:application/json;charset=UTF-8"

echo "set nacosAddr=$nacosAddr"
echo "set group=$group"

failCount=0
tempLog=$(mktemp -u)
function addConfig() {
  curl -X POST -H "${contentType}" "http://$nacosAddr/nacos/v1/cs/configs?dataId=$(urlencode $1)&group=$group&content=$(urlencode $2)&tenant=$tenant&username=$username&password=$password" >"${tempLog}" 2>/dev/null
  if [[ -z $(cat "${tempLog}") ]]; then
    echo " Please check the cluster status. "
    exit 1
  fi
  if [[ $(cat "${tempLog}") =~ "true" ]]; then
    echo "Set $1=$2 successfully "
  else
    echo "Set $1=$2 failure "
    (( failCount++ ))
  fi
}

count=0
for line in $(cat $(dirname "$PWD")/config.txt | sed s/[[:space:]]//g); do
  (( count++ ))
	key=${line%%=*}
    value=${line#*=}
	addConfig "${key}" "${value}"
done

echo "========================================================================="
echo " Complete initialization parameters,  total-count:$count ,  failure-count:$failCount "
echo "========================================================================="

if [[ ${failCount} -eq 0 ]]; then
	echo " Init nacos config finished, please start seata-server. "
else
	echo " init nacos config fail. "
fi

运行

docker-compose -f fileName.yaml up -d

bash nacos-config.sh -h ${nacosHost} -p ${port} -g SEATA_GROUP  -u ${username} -w ${pwd}

作者声明

如有问题,欢迎指正!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SEATAdocker-compose部署 的相关文章

  • kafka3.1 docker-compose方式安装(二)

    ZooKeeper 是为 Kafka 提供协调服务的工具 xff0c 所以得启动一个ZooKeeper 容器 配置文件 docker compose yml span class token key atrule version span
  • Jetpack-Compose-自定义绘制

    上节课我们简单的利用了一下自定义裁剪和自定义就能玩出如下简单案例 效果不错 这节课咋们来看看Compose自定义绘制能不能花里胡哨 一 Compose自定义 自定义 一个应用的可创造性往往离不开人们的千奇百怪想象和用户变化万千的需求 自定义
  • Jetpack Compose 从入门到入门(二)

    开始布局部分 这部分我个人感觉没有必要每个组件 属性都详细说到 xff0c 否则篇幅会很长 建立起Compose中的组件与 Android Views的一个对应关系就够了 具体还是需要在实际的使用中去熟悉 1 Column 子元素按竖直顺序
  • Jetpack Compose 从入门到入门(六)

    本篇说说Compose中的Canvas 1 Canvas span class token annotation builtin 64 Composable span span class token keyword fun span sp
  • Jetpack Compose 从入门到入门(八)

    接着上一篇的动画部分 xff0c 本篇主要是自定义动画与Animatable AnimationSpec 上一篇中 xff0c 出现了多次animationSpec属性 xff0c 它是用来自定义动画规范的 例如 xff1a span cl
  • Jetpack Compose 从入门到入门(九)

    本篇是Compose的手势部分 点击 添加clickable修饰符就可以轻松实现元素的点击 此外它还提供无障碍功能 xff0c 并在点按时显示水波纹效果 span class token annotation builtin 64 Comp
  • docker-compose搭建lnmp环境

    使用命令创建文件和文件夹 span class token function mkdir span p span class token punctuation span php nginx span class token punctua
  • docker-compose up --build -d 的作用

    docker compose up build d 根据Dockerfile重新下载需要的镜像并构建容器 xff0c 也就是说这句相当于是 docker compose build no cache 和 docker compose up
  • docker、docker-compose、docker swarm和k8s(Kubernetes)的区别

    文章目录 DockerDocker ComposeDocker SwarmKubernetes Docker Docker 这个东西所扮演的角色 xff0c 容易理解 xff0c 它是一个容器引擎 xff0c 也就是说实际上我们的容器最终是
  • Docker Compose

    1 简介 Docker Compose 项目是 Docker 官方的开源项目 xff0c 负责实现对Docker容器集群的快速编排 Docker Compose将所管理的容器分为三层 xff1a 工程 xff08 project xff09
  • 使用docker-compose配置mysql数据库并且配置用户密码

    下面要求环境 xff1a 一定要安装docker ce和docker compose才能进行下面步骤 linux找到你要放mysql的目录 创建一个docker compose yml 以下配置了外部数据卷 外部配置文件 外部初始化文件 x
  • docker-compose 部署ELK

    目录结构 docker compose 文件 span class token key atrule version span span class token punctuation span span class token strin
  • Docker Compose

    1 Docker Compose官网说明 理解 Compose是Docker官方的开源项目 需要安装 xff01 Dockerfile 让程序在任何地方运行 web服务 redis mysql nginx 多个容器 run Compose的
  • rxjava - compose()操作符

    1 问题背景 想要给多个流重复应用 34 一系列 34 相同的操作符 该怎么办 比如 我们使用Rx 43 Retrofit进行网络请求时 都有遇到这样场景 要在io线程中请求数据 在主线程订阅 更新UI 所以必须频繁使用下面这样的代码 su
  • 【Docker】ubuntu下安装Docker和Docker-Compose

    文章目录 一 先决条件 xff08 一 xff09 操作系统要求 xff08 二 xff09 卸载旧版本Docker 二 安装Docker xff08 一 xff09 使用存储库安装Docker 三 安装Docker Compose xff
  • 安装docker-compose报ERROR: Cannot uninstall ‘PyYAML‘. It is a distutils installed project and thus we c

    在CentOS7中 xff0c 如果python版本为3 x xff0c 在安装docker compose时会报错 xff1a ERROR Cannot uninstall PyYAML It is a distutils install
  • docker、docker-compose和Portainer的安装

    一 docker安装 span class token comment 安装docker相关依赖 span yum span class token function install span y yum utils device mapp
  • docker-compose 中 volumes、environment、privileged、network_mode的使用

    privileged xff1a 用来给容器root权限 xff0c 不安全的environment xff1a 设置容器中的环境变量volumes xff1a 用来存储docker持久化的数据 xff0c 启动tomcat容器后 xff0
  • Compose 获取当前屏幕方向是横屏还是竖屏

    从本地配置读取方向属性 共三个值 LocalConfiguration current orientation 对应的属性值在android content res Configuration类里 public static final i
  • 如何使用docker和docker-compose在本地Testnet上开发EOS区块链

    EOS区块链的开发并不是立竿见影的 因为需要一些非显而易见的组件 需要对它们进行配置和协同工作 nodeos 块生成器守护程序 keosd 钱包守护进程 存储私钥 eosio cpp 智能合约编译器 eosio token 平台的参考标记

随机推荐

  • SCRUM敏捷项目管理实战(深圳站)

    1 内容提要 SCRUM是目前各互联网公司普遍采用的敏捷项目管理模式 xff0c 与传统的项目管理十大知识领域相比 xff0c 敏捷更加直击要害 xff0c 更加强调自组织和跨职能团队 xff0c 更能帮助企业高效率交付和盈利 xff01
  • 2021年最新gitee使用教程

    gitee简介 Gitee com xff08 码云 xff09 是 OSCHINA NET 推出的代码托管平台 xff0c 支持 Git 和 SVN xff0c 提供免费的私有仓库托管 目前已有超过 600 万的开发者选择 Gitee 为
  • 在vscode中运行c、c++(超级简单)

    第一 下载安装vscode 第二 下载插件 链接 xff1a https pan baidu com s 1mLdKbQWxkZJYhwH0ToD9oQ 提取码 xff1a 3kxe 复制这段内容后打开百度网盘手机App xff0c 操作更
  • flameshot安装并配置插入文字描述、设置默认保存路径、将截图内容添加到粘贴板中

    flameshot配置插入文字描述 设置默认保存路径 将截图内容添加到粘贴板中 安装 xff1a https github com flameshot org flameshot releases 下载相应rpm包 xff0c 安装即可 以
  • 静态域[详解]

    不知道静态域是什么 目前有两种想法 1是代表static修饰的属性 方法等的集合 即所有static修饰的都算 2是认为仅仅代表静态代码块 即 static 下面正式研究 34 何为静态域 34 查到的文章基本分静态域 静态常量 静态方法这
  • OpenFlow 流表

    流规则组成 xff1a 每条流规则由一系列字段组成 xff0c 分为基本字段 条件字段和动作字段三部分 一 xff1a 基本字段 duration sec xff1a 表示流表项的生效时间 xff0c 以秒为单位 可以用来控制流表项的生命周
  • Gittee的使用

    Git Linus用C写的分布式版本控制系统 Git官网 xff1a https git scm com Gittee 国内代码托管和协作开发的平台 xff0c 可以看作为中文版的 GitHub 官网 xff1a Gitee 基于 Git
  • 使用VsCode管理Gitee仓库中的项目

    使用VsCode管理Gitee仓库中的项目的大致流程如下 1 首先得下载安装 git xff0c 详见 Git 详细安装教程详解 Git 安装过程的每一个步骤 mukes的博文 xff09 2 为 git 配置 username和email
  • Linux嵌入式开发之内存占用

    一 引言 内存是嵌入式系统中的关键资源 xff0c 内存占用主要是指软件系统的内存使用情况 本篇博客将介绍如何分析内存使用以便进行进一步优化内存占用相关的基础概念和相关工具 二 内存占用 内存占用是应用程序运行时内存的使用或引用数量 对于开
  • 手眼标定——使用 easy_handeye 和 aruco

    整个过程分为以下三步 aruco ros 的配置使用easy handeye 的配置使用标定过程 aruco 的配置使用 clone aruco 项目 到 ros 工作空间 前往 aruco marker 生成网站 打印 marker xf
  • CentOS7.6 Docker 操作(一)

    CentOS7 6 Docker 操作 xff08 一 xff09 CentOS 7 6镜像地址 网易镜像 xff08 可直接复制地址到迅雷 xff0c 下载会快一些 xff09 http mirrors 163 com centos 7
  • 读取excel 表格控件

    直接在实时编辑器里 xff1a T 61 xlsread 39 C Users 86173 Desktop DESKETOP 111 xlsx 39 t 61 textread 39 C Users 86173 Desktop DESKET
  • Eureka注册中心

    3 Eureka注册中心 假如我们的服务提供者user service部署了多个实例 xff0c 如图 xff1a 大家思考几个问题 xff1a order service在发起远程调用的时候 xff0c 该如何得知user service
  • 从docker 拉去指定版本的镜像

    从docker 拉去指定版本的镜像 1 上https hub docker com 网站 xff0c 查询 点击tags查看 2 拉取 docker pull images tags
  • SpringBoot整合mybatis-plus

    导入依赖 在项目pom文件导入依赖 在项目pom文件导入依赖 span class token tag span class token tag span class token punctuation lt span dependency
  • idea mybatisplus 插件使用

    在plugin中安装mybatisplus 插件 使用 配置数据库 生成代码 表新增字段 xff0c 重新生成实体类覆盖 因业务需求 xff0c 表中可能会时不时增加一些字段 xff0c 大多情况下实体类中不会添加表中没有的字段 xff0c
  • axios请求

    可传参数 span class token function axios span span class token punctuation span span class token punctuation span span class
  • kubesphere

    文章目录 KubeSphere简介安装多租户管理WordPressDevOps 作者声明 KubeSphere 默认的 dashboard 没啥用 xff0c 我们用 kubesphere 可以打通全部的 devops 链路 Kubesph
  • 粒子群算法 PSO

    粒子群算法 粒子群算法 PSO 在PSO中 每个优化问题的潜在解都是搜索空间的一只鸟 xff0c 被称为粒子 xff0c 所有的粒子都有一个由适应度函数决定的适值 xff0c 每个粒子还有一个速度决定它们 飞行 的方向和距离 xff0c 然
  • SEATAdocker-compose部署

    docker compose 文件 span class token key atrule version span span class token punctuation span span class token string 39