- 修改 .env.dev 文件中的数据库和模型配置 - 将 .env.dev 和 .env.prod 添加到 .gitignore 文件 |
5 months ago | |
|---|---|---|
| data_preparation | 6 months ago | |
| middlewares | 6 months ago | |
| util | 6 months ago | |
| .env.dev | 5 months ago | |
| .env.prod | 6 months ago | |
| .gitignore | 5 months ago | |
| Dockerfile | 6 months ago | |
| README.md | 6 months ago | |
| backend.py | 6 months ago | |
| env.py | 6 months ago | |
| index.html | 6 months ago | |
| nginx.conf | 6 months ago | |
| rag.py | 6 months ago | |
| requirements.txt | 6 months ago | |
README.md
在arm64架构机器上通过Docker离线部署MySQL 8.0.39,需要先准备离线镜像包,再进行部署。以下是详细步骤:
一、准备离线镜像(需联网环境)
-
在有网络的arm64机器上拉取镜像
# 拉取arm64架构的mysql:8.0.39(官方镜像已支持多架构,会自动匹配当前架构) docker pull mysql:8.0.39 -
将镜像导出为离线包
# 导出镜像为tar文件 docker save -o mysql_8.0.39_arm64.tar mysql:8.0.39 -
将离线包传输到目标机器
通过U盘、移动硬盘等方式,将mysql_8.0.39_arm64.tar复制到需要离线部署的arm64机器上。
二、离线部署步骤(目标arm64机器)
-
加载离线镜像
# 加载镜像 docker load -i mysql_8.0.39_arm64.tar # 验证镜像是否加载成功 docker images | grep mysql -
创建数据存储目录(可选,用于持久化数据)
# 创建数据目录并设置权限 mkdir -p /data/mysql/{data,conf,logs} chmod -R 777 /data/mysql # 生产环境建议根据实际用户权限调整 -
启动MySQL容器
docker run -d \ --name mysql8 \ --restart=always \ -p 3306:3306 \ -v /data/mysql/data:/var/lib/mysql \ -v /data/mysql/conf:/etc/mysql/conf.d \ -v /data/mysql/logs:/var/log/mysql \ -e MYSQL_ROOT_PASSWORD=YourPassword123 \ # 设置root密码 -e TZ=Asia/Shanghai \ # 设置时区 mysql:8.0.39参数说明:
-v:挂载目录,实现数据持久化(容器删除后数据不丢失)-e MYSQL_ROOT_PASSWORD:必须设置,指定root用户密码--restart=always:容器随Docker服务自动启动
三、验证部署
-
查看容器状态
docker ps | grep mysql8 -
进入容器测试
# 进入容器 docker exec -it mysql8 bash # 登录MySQL mysql -u root -p # 输入设置的密码(YourPassword123) # 验证版本 mysql> select version();
四、注意事项
- 确保目标机器是arm64架构:通过
uname -m命令验证,输出应为aarch64。 - 若需要自定义配置(如字符集、端口等),可在
/data/mysql/conf目录下创建my.cnf文件,容器会自动加载。 - 生产环境建议避免使用
777权限,应根据实际运行用户调整目录权限。 - 如需迁移,只需备份
/data/mysql目录和镜像包,在新机器上重复步骤二即可。
要在arm64架构机器上通过Docker离线部署pgvector(PostgreSQL的向量扩展),需要准备适配arm64的镜像并进行离线迁移。以下是详细步骤:
一、准备离线镜像(需联网环境)
-
拉取arm64架构的pgvector镜像
官方提供的pgvector/pgvector镜像已支持多架构,可直接指定arm64架构拉取:# 拉取带pgvector扩展的PostgreSQL镜像(arm64架构) docker pull --platform linux/arm64 pgvector/pgvector:pg16- 这里以PostgreSQL 16版本为例,也可替换为其他版本(如
pg15、pg14)
- 这里以PostgreSQL 16版本为例,也可替换为其他版本(如
-
导出镜像为离线包
docker save -o pgvector_arm64.tar pgvector/pgvector:pg16 -
传输离线包到目标机器
通过U盘、SCP等方式,将pgvector_arm64.tar复制到需要离线部署的arm64机器。
二、离线部署步骤(目标arm64机器)
-
加载离线镜像
# 加载镜像 docker load -i pgvector_arm64.tar # 验证镜像(确认架构为arm64) docker inspect -f '{{.Architecture}}' pgvector/pgvector:pg16 # 输出应为 "arm64" -
创建数据持久化目录
# 创建数据和配置目录 mkdir -p /data/pgvector/{data,conf,logs} chmod -R 700 /data/pgvector # PostgreSQL建议使用严格权限 -
启动pgvector容器
docker run -d \ --name pgvector \ --restart=always \ -p 5432:5432 \ -v /data/pgvector/data:/var/lib/postgresql/data \ -v /data/pgvector/conf:/etc/postgresql/conf.d \ -v /data/pgvector/logs:/var/log/postgresql \ -e POSTGRES_PASSWORD=YourStrongPassword \ # 设置数据库密码 -e POSTGRES_USER=pguser \ # 自定义用户名(可选) -e POSTGRES_DB=vectordb \ # 初始化数据库名(可选) -e TZ=Asia/Shanghai \ pgvector/pgvector:pg16
三、验证pgvector部署
-
进入容器并连接数据库
# 进入容器 docker exec -it pgvector bash # 连接PostgreSQL psql -U pguser -d vectordb # 输入密码(YourStrongPassword) -
验证pgvector扩展
在PostgreSQL终端执行:-- 启用pgvector扩展 CREATE EXTENSION vector; -- 验证扩展是否生效 SELECT * FROM pg_extension WHERE extname = 'vector';若返回包含
vector的记录,则表示扩展加载成功。
四、注意事项
- 架构兼容性:通过
uname -m确认目标机器为aarch64(即arm64架构)。 - 版本选择:镜像标签
pg16表示PostgreSQL 16,可根据需求替换为其他版本(需与pgvector兼容)。 - 数据安全:生产环境需避免使用
700以外的宽松权限,建议根据实际用户ID调整目录权限。 - 自定义配置:可在
/data/pgvector/conf目录下创建postgresql.conf添加自定义配置(如shared_buffers、max_connections等)。
通过以上步骤,即可在arm64机器上离线部署带有pgvector扩展的PostgreSQL,用于向量存储和相似度搜索场景。
在arm64架构机器上通过Docker离线部署Nginx并使用自定义配置文件,可按以下步骤操作:
一、准备离线镜像(需联网环境)
-
拉取arm64架构的Nginx镜像
# 拉取指定arm64架构的nginx镜像(以最新稳定版为例) docker pull --platform linux/arm64 nginx:stable -
导出镜像为离线包
docker save -o nginx_arm64.tar nginx:stable -
传输文件到目标机器
将离线镜像包nginx_arm64.tar和你的自定义配置文件nginx.conf复制到目标arm64机器(可通过U盘、移动硬盘等)。
二、离线部署步骤(目标arm64机器)
-
加载离线镜像
# 加载镜像 docker load -i nginx_arm64.tar # 验证镜像架构(确保为arm64) docker inspect -f '{{.Architecture}}' nginx:stable # 输出应为 "arm64" -
准备配置文件和目录结构
假设你的自定义nginx.conf已放在目标机器的/root/nginx/conf目录(可根据实际路径调整):# 创建必要目录(配置、日志、网页根目录) mkdir -p /root/nginx/{conf,logs,html} # 将你的nginx.conf放入配置目录(确保文件已传输到目标机器) # 假设你的nginx.conf在当前目录,移动到配置目录 mv ./nginx.conf /root/nginx/conf/ -
启动Nginx容器(挂载自定义配置)
docker run -d \ --name nginx \ --restart=always \ -p 80:80 \ # 映射端口,可根据需要添加443等 -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \ # 挂载自定义配置(只读) -v /root/nginx/logs:/var/log/nginx \ # 挂载日志目录 -v /root/nginx/html:/usr/share/nginx/html \ # 挂载网页根目录 nginx:stable
三、验证部署
-
查看容器状态
docker ps | grep nginx若状态为
Up则表示启动成功。 -
验证配置是否生效
# 进入容器 docker exec -it nginx bash # 查看加载的配置 cat /etc/nginx/nginx.conf确认内容与你的自定义配置一致。
-
测试访问
在机器本地执行curl http://localhost,或从其他机器访问该服务器的80端口,验证Nginx是否按配置工作。
四、注意事项
- 路径权限:确保宿主机的
/root/nginx目录及子目录有足够权限(建议chmod -R 755 /root/nginx),避免容器内无法读取配置。 - 配置正确性:自定义
nginx.conf需符合Nginx语法,可在启动前通过nginx -t -c /path/to/nginx.conf验证(需在有Nginx环境的机器上)。 - 端口映射:根据你的配置文件中的监听端口,在
docker run命令中添加对应的-p映射(如HTTPS需映射443端口)。 - 重启配置:若修改了
nginx.conf,需重启容器生效:docker restart nginx。
通过以上步骤,即可在arm64机器上离线部署使用自定义配置的Nginx服务。