AI需要的环境太多太杂了,常用docker部署,方便迁移,不污染本地环境。

Docker

https://www.docker.com/products/docker-desktop/下载桌面版 首先进入设置-Docker Engine,设置镜像

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn"
  ]
}

右下角>_标记点击进入命令行

ES

docker run -d --name es-node \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
docker.elastic.co/elasticsearch/elasticsearch:8.19.10

下载分词器

docker cp elasticsearch-analysis-ik-8.19.10.zip es-node:/usr/share/elasticsearch/
docker exec -it es-node /bin/bash
./bin/elasticsearch-plugin install file:///usr/share/elasticsearch/elasticsearch-analysis-ik-8.19.10.zip
## 验证是否安装成功
curl -X GET "localhost:9200/_cat/plugins?v"

Mysql

services:
  mysql:
    image: mysql:8.0
    container_name: mysql8
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      TZ: Asia/Shanghai
    volumes:
      - mysql-data:/var/lib/mysql
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_unicode_ci
      --default-authentication-plugin=mysql_native_password
    restart: unless-stopped
    networks:
      - xxl-net

networks:
  xxl-net:

volumes:
  mysql-data:

XXL-JOB

https://raw.githubusercontent.com/xuxueli/xxl-job/3.4.2/doc/db/tables_xxl_job.sql

services:
  xxl-job-admin:
    image: osmiling/xxl-job:3.4.2
    container_name: xxl-job
    ports:
      - "8080:8080"
    environment:
      TZ: Asia/Shanghai
      DB_HOST: mysql8
      DB_PORT: "3306"
      DB_NAME: xxl_job
      DB_USER: root
      DB_PASSWORD: 123456
      SPRING_DATASOURCE_URL: jdbc:mysql://mysql8:3306/xxl_job?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
      SPRING_DATASOURCE_USERNAME: root
      SPRING_DATASOURCE_PASSWORD: 123456
    networks:
      - xxl-net
    restart: unless-stopped

networks:
  xxl-net:
    external: true
    name: docker_xxl-net

Neo4j

docker run \
  --name neo4j \
  -p 7474:7474 -p 7687:7687 \
  -v $HOME/neo4j/data:/data \
  -v $HOME/neo4j/logs:/logs \
  -v $HOME/neo4j/conf:/conf \
  -e NEO4J_AUTH=neo4j/neo4j666 \
  -e NEO4JLABS_PLUGINS='["apoc"]' \
  -d neo4j:5.22-community

MinIO

#linux:
sudo docker run -d \
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio-server \
  -e "MINIO_ROOT_USER=minioadmin" \
  -e "MINIO_ROOT_PASSWORD=minioadmin" \
  -v /mnt/data/minio:/data \
  minio/minio server /data --console-address ":9001"

#mac:
sudo docker run -d \
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio-server \
  -e "MINIO_ROOT_USER=minioadmin" \
  -e "MINIO_ROOT_PASSWORD=minioadmin" \
  -v /Users/$(whoami)/data/minio:/data \
  minio/minio server /data --console-address ":9001"
  
  # 直接安装
  # 安装官方minio
brew install minio/stable/minio
mkdir -p ~/data/minio
MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=minioadmin minio server ~/data/minio --console-address ":9001"
brew services start minio
brew services stop minio

Redis

docker run -d \
--name redis \
-p 6379:6379 \
-v redis-data:/data \
redis redis-server --requirepass 123456 --appendonly yes

Dify

 git clone https://github.com/langgenius/dify.git  
 git checkout 1.16.1 # 新版需要填智能体的token配置总是失败,所以切回旧版
#直接用默认的配置即可,用的是pgsql
 cp .env.example .env
 docker compose up -d