Linux部署Sonic前后端(详细版)(腾讯云)

系统用的是Ubuntu 22.04 LTS

1、安装Docker

bash 复制代码
sudo apt update
sudo apt install -y docker.io docker-compose
sudo systemctl start docker
sudo systemctl enable docker

# 如果不想每次用 sudo,可以加权限
sudo usermod -aG docker $USER

更新Docker配置文件 (加速器在文章发布时可用)

bash 复制代码
sudo tee /etc/docker/daemon.json > /dev/null <<EOF
{
  "registry-mirrors": [
    "https://docker-mirror.aigc2d.com"  ]
}
EOF

# 重启docker
sudo systemctl daemon-reexec
sudo systemctl restart docker

2、安装 docker-compose

下载最新 docker-compose 二进制文件

bash 复制代码
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

3、安装MySQL

bash 复制代码
docker run -d --name mysql-sonic \
  -e MYSQL_ROOT_PASSWORD=123123 \
  -p 3306:3306 \
  mysql:5.7

进入MySQL进行配置, 创建对外账户

bash 复制代码
# 进入MySql
docker exec -it mysql-sonic mysql -u root -p
--输入密码

# 示例:创建新用户
CREATE USER 'myuser'@'%' IDENTIFIED BY '123123';
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

# 创建数据库
CREATE DATABASE sonic
CHARACTER SET utf8
COLLATE utf8_general_ci;

# 退出MySQL
\q

4、克隆或下载Sonic

4.1下载Sonic

下载本地后,解压上传到服务器

4.2Gitee下载(建议使用4.1)

Sonic生成公钥:

bash 复制代码
# 生成公钥,改成自己的邮箱
ssh-keygen -t rsa -C "xxx@xxx.com" 
# 一路按回车,生成默认的 ~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub

#输出公钥内容
cat ~/.ssh/id_rsa.pub

将公钥复制到Gitee账户设置中

验证Gitee是否连接成功

bash 复制代码
ssh -T git@gitee.com

看到输出:

Hi lyc0311(@lyc0311)! You've successfully authenticated, but GITEE.COM does not provide shell access.

克隆Sonic

bash 复制代码
git clone https://gitee.com/sonic-cloud/sonic-server.git
cd sonic-server

5、配置.env 和拉取

bash 复制代码
# 进入.env 进行编辑
cp .env.example .env
nano .env
bash 复制代码
################################################
#         Do you need any help?                #
#     Visit https://sonic-cloud.cn/deploy      #
################################################
 
##################
# Service Config #
##################
SONIC_SERVER_HOST=192.168.68.19  #电脑的本地IP
SONIC_SERVER_PORT=3000
SONIC_EUREKA_USERNAME=sonic
SONIC_EUREKA_PASSWORD=sonic
SONIC_EUREKA_PORT=8761
 
################
# MySQL Config #
################
MYSQL_HOST=192.168.68.19  #电脑的本地IP
MYSQL_PORT=3306
MYSQL_DATABASE=sonic #MySQL数据库名称
MYSQL_USERNAME=myuser  #外部访问账户
MYSQL_PASSWORD=123123  #密码
 
################
# User Config  #
################
SECRET_KEY=sonic
EXPIRE_DAY=14
PERMISSION_ENABLE=true
PERMISSION_SUPER_ADMIN=sonic
REGISTER_ENABLE=true
NORMAL_USER_ENABLE=true
LDAP_USER_ENABLE=false
LDAP_USER_ID=cn
LDAP_BASE_DN=ou=users
LDAP_BASE=ou=system
LDAP_USERNAME=uid=admin,ou=system
LDAP_PASSWORD=sonic
LDAP_URL=ldap://192.168.68.19:10389  电脑的本地IP
LDAP_OBJECT_CLASS=person
bash 复制代码
# 进入Sonic的文件
cd /home/ubuntu/sonic-server

# 拉取
docker-compose up -d

6、运行情况

bash 复制代码
docker ps

7、其他

7.1重启网络

bash 复制代码
docker-compose down
docker network prune
docker-compose up -d

7.2查询容器运行情况

bash 复制代码
docker ps -a

7.3报错

大概率是server-controller报错,可以将日志输出 问一下deepseek。

bash 复制代码
#  sonic-server-v272_y_sonic-server-controller_1 是容器名称
docker logs --tail=200 sonic-server-v272_y_sonic-server-controller_1

以下是正常情况输出内容

我遇到的问题是

创建一个新的数据库

bash 复制代码
# 登录root账户
mysql -u root -p
#输入密码
 
# 创建数据库
CREATE DATABASE sonictest
CHARACTER SET utf8
COLLATE utf8_general_ci;

修改.env 重启容器解决

相关推荐
Dolphin_Home3 小时前
从理论到实战:图结构在仓库关联业务中的落地(小白→中级,附完整代码)
java·spring boot·后端·spring cloud·database·广度优先·图搜索算法
bloglin999993 小时前
启动容器报错ls: cannot access ‘/docker-entrypoint-initdb.d/‘: Operation not permitted
docker·容器·eureka
songjxin4 小时前
离线部署kubernetes v1.34.3
云原生·容器·kubernetes
阿里云云原生5 小时前
Android App 崩溃排查实战:如何利用 RUM 完整数据与符号化技术定位问题?
android·阿里云·云原生·rum
Mr.朱鹏6 小时前
SQL深度分页问题案例实战
java·数据库·spring boot·sql·spring·spring cloud·kafka
熊出没8 小时前
Kubernetes 实操命令大全
云原生·容器·kubernetes
阿里云云原生8 小时前
深度解析云监控 2.0 日志审计:统一采集、实体建模与告警溯源能力
阿里云·云原生·云监控·可观测
TSAI10 小时前
Docker Swarm 集群部署 Eureka 服务注册中心:高可用微服务架构的基石
spring cloud·docker
中国胖子风清扬10 小时前
SpringAI和 Langchain4j等 AI 框架之间的差异和开发经验
java·数据库·人工智能·spring boot·spring cloud·ai·langchain
阿基米东11 小时前
Let‘s Encrypt 是什么?它是如何工作的?
云原生·https·云计算