Acesso no exterior: www.kdjingpai.com
Ctrl + D Marcar este site como favorito

Manual de operações do Dify: um guia prático para migrar da implantação do Docker para os dados

Este artigo detalhará como usar o Docker responder cantando Docker Compose para implementar, atualizar e migrar plataformas de desenvolvimento de aplicativos LLM de código aberto Dify (v0.6.14). O conteúdo abrange operações avançadas, desde a implementação rápida até o backup de dados e a criação de imagens a partir do código-fonte, com o objetivo de fornecer um guia de operação claro e prático para desenvolvedores e equipe de O&M.

Implantação rápida da Dify com o Docker Compose

Para a maioria dos usuários, usar o Docker Compose A documentação é implementada Dify A maneira mais rápida e recomendada.

Etapa 1: Obter o arquivo de implantação do Dify

Em primeiro lugar, de Dify Obtenha o repositório oficial do docker Catálogo de implantação.

Etapa 2: Configurar as variáveis de ambiente

Dify de todas as configurações são gerenciados por meio de variáveis de ambiente. Antes da implementação, o arquivo de modelo de configuração .env.example replicar .env e, em seguida, modifique-o para atender às suas necessidades reais.

# 进入 docker 部署目录
cd dify/docker
# 复制环境变量配置文件
cp .env.example .env

Em seguida, você pode usar um editor de texto para abrir o arquivo .env altere a senha do banco de dados de acordo com os comentários contidos no arquivo,SECRET_KEY e outras configurações importantes.

Etapa 3: Iniciar o serviço

Após concluir a configuração, execute o seguinte comando para iniciar em segundo plano Dify de todos os serviços.

docker-compose up -d

Esse comando extrai automaticamente os Docker e inicie todos os contêineres em ordem.

Atualização dos serviços da Dify

(col.) reprovar (um aluno) Dify Ao lançar uma nova versão, você pode seguir as etapas abaixo para realizar uma atualização de segurança.

  1. Pare e remova os contêineres antigos:
    cd dify/docker
    docker-compose down
    
  2. Dados de backup (importante):
    É altamente recomendável que você faça um backup antes de realizar qualquer atualização. docker em particular aquele em que o volumes Subdiretórios. Essa é a chave para garantir a segurança dos dados.
  3. Obter a nova versão do documento:
    Faça o download ou obtenha a versão mais recente do Dify código-fonte, usando o novo docker O catálogo substitui o antigo.
  4. Importação de uma nova versão da imagem:
    Se você estiver em um ambiente off-line, precisará importar a nova versão do arquivo de imagem com antecedência.
  5. Atualização de arquivos de configuração:
    Comparar o antigo com o novo .env para migrar a configuração personalizada para o novo arquivo .env Documentação.
  6. Lançamento da nova versão do serviço:
    docker-compose up -d
    

Migração e backup de dados

A migração de dados é um requisito comum em operações e manutenção.Dify A persistência de dados é realizada usando duas abordagens: mapeamento de diretório local e o Docker Nomeie os volumes de dados para que eles sejam migrados de forma diferente.

Migrar diretórios de volume que são mapeados localmente

Dify (usado em uma expressão nominal) docker-compose.yaml Na documentação, alguns serviços mantêm os dados por meio de "mapeamento de diretório local". Isso significa que um diretório no contêiner corresponde diretamente a um diretório no diretório ./volumes Catálogo.

A migração dessa forma é muito simples e consiste basicamente em copiar arquivos.

  1. Interromper o serviço Dify
    Todos os contêineres devem ser interrompidos antes de manipular o arquivo para evitar conflitos de gravação de dados.

    docker-compose down
    
  2. Catálogo de volumes embalados
    comandante-em-chefe (militar) volumes é compactado em um arquivo zip.

    tar -czvf dify-volumes.tar.gz ./volumes
    
  3. Descompactar em um novo servidor
    Depois de transferir o zip para o local de destino no novo servidor, descompacte-o.

    tar -xzvf dify-volumes.tar.gz
    

Migração de volumes de dados nomeados pelo Docker

com relação a PostgreSQL e outros serviços importantes.Dify adotado Docker Os dados são mantidos em um "volume de dados nomeado". Esse volume consiste em Docker Gerenciamento unificado, cujos arquivos físicos são armazenados no /var/lib/docker/volumes/ a cópia direta é relativamente complicada e pode ter problemas de permissão.

para oradata responder cantando dify_es01_data Esses dois volumes de dados são usados como exemplo, e o método de migração recomendado é o seguinte.

instruções:: Se implantado com docker-compose -p dify Especifique o nome do projeto.Docker Um prefixo é adicionado automaticamente ao nome do volume, por exemplo dify_oradata.

Método 1: fazer backup e restaurar usando contêineres temporários (recomendado)

Esse método não requer root e não há necessidade de se preocupar com o caminho físico específico do volume no host, é uma prática segura e padronizada.

  1. Volumes de dados de backup
    Crie um arquivo temporário alpine monte o volume de dados do qual será feito o backup e um diretório de backup local e, em seguida, execute o comando pack dentro do contêiner.

    # 确保当前目录下有 backup 子目录
    mkdir -p backup
    # 备份 oradata 数据卷
    docker run --rm -v oradata:/source -v $(pwd)/backup:/backup alpine sh -c "cd /source && tar czf /backup/oradata.tar.gz ."
    # 备份 dify_es01_data 数据卷
    docker run --rm -v dify_es01_data:/source -v $(pwd)/backup:/backup alpine sh -c "cd /source && tar czf /backup/es_data.tar.gz ."
    
  2. Transferência de arquivos de backup
    comandante-em-chefe (militar) backup do diretório oradata.tar.gz responder cantando es_data.tar.gz Transferência de arquivos para o novo servidor.
  3. Recuperação de dados em um novo servidor
    Primeiro, crie um volume de dados com o mesmo nome no novo servidor e, em seguida, restaure os dados para ele de maneira semelhante.

    # 在新服务器上创建空的命名数据卷
    docker volume create oradata
    docker volume create dify_es01_data
    # 从备份文件恢复数据到 oradata 卷
    docker run --rm -v oradata:/target -v /path/to/backup:/backup alpine sh -c "cd /target && tar xzf /backup/oradata.tar.gz"
    # 从备份文件恢复数据到 dify_es01_data 卷
    docker run --rm -v dify_es01_data:/target -v /path/to/backup:/backup alpine sh -c "cd /target && tar xzf /backup/es_data.tar.gz"
    

Método 2: Manipular diretamente o diretório do volume do host (requer privilégios de root)

Se o servidor que possui o root você também pode fazer o backup do diretório físico do volume diretamente.

  1. Encontrar o caminho físico para um volume
    docker volume inspect oradata dify_es01_data
    

    Esse comando gera a saída do volume Mountpointou seja, o caminho de armazenamento físico.

  2. Embalagem direta
    # 获取路径并打包
    ORADATA_PATH=$(docker volume inspect -f '{{.Mountpoint}}' oradata)
    ES_DATA_PATH=$(docker volume inspect -f '{{.Mountpoint}}' dify_es01_data)
    sudo tar -czf oradata_backup.tar.gz -C $ORADATA_PATH .
    sudo tar -czf es_data_backup.tar.gz -C $ES_DATA_PATH .
    

Operações avançadas: criação e gerenciamento de imagens a partir da origem

Em cenários em que o desenvolvimento secundário é necessário, patches de segurança são aplicados ou implementações off-line são feitas, são necessárias compilações manuais a partir da fonte Dify (usado em uma expressão nominal) Docker Espelhamento.

Criação de APIs e espelhos da Web

Dify Os serviços principais são divididos em api responder cantando web Duas partes que precisam ser construídas separadamente.

  1. Crie a imagem da API (dify/dify-api)
    cd api && docker build . -t dify/dify-api:0.6.14
    
  2. Criar uma imagem da Web (dify/dify-web)
    cd web && docker build . -t dify/dify-web:0.6.14
    

Exportação e importação de imagens (para ambientes off-line)

Depois de criar ou extrair uma imagem, ela pode ser exportada como uma .tar para importação para uso em servidores que não têm acesso a uma rede externa.

  1. Exportação de espelhos
    fazer uso de docker save para empacotar uma ou mais imagens.

    # 导出 Dify 核心镜像
    docker save -o dify_dify_api_0.6.14.tar dify/dify-api:0.6.14
    docker save -o dify_dify_web_0.6.14.tar dify/dify-web:0.6.14
    # 导出其它依赖镜像
    docker save -o postgres_15_alpine.tar postgres:15-alpine
    docker save -o redis_6_alpine.tar redis:6-alpine
    
  2. Importação de imagens
    No novo servidor, use o comando docker load comando de .tar para carregar a imagem.

    docker load -i dify_dify_api_0.6.14.tar
    docker load -i dify_dify_web_0.6.14.tar
    docker load -i postgres_15_alpine.tar
    docker load -i redis_6_alpine.tar
    

Análise dos principais conceitos

A compreensão dos conceitos-chave a seguir ajudará a manter e usar melhor o Dify.

docker junto com docker-legacy diretório (no disco rígido do computador)

existir Dify Há dois diretórios de implantação no código-fonte.docker-legacy é o método de implantação antigo, e o docker O catálogo é a opção de implementação recomendada e mais estruturada atualmente. Os novos usuários devem sempre optar por usar o docker Catálogo.

SECRET_KEY papel de

existir dify-api atendidos .env arquivo de configuração.SECRET_KEY é uma configuração de segurança essencial. É uma cadeia longa e aleatória usada para criptografar e emitir a sessão de um usuário cookieque impede que a sessão seja adulterada. Certifique-se de definir esse valor como um valor complexo que ninguém possa adivinhar.

Ignorado no momento da construção storage diretório (no disco rígido do computador)

Dify (usado em uma expressão nominal) Dockerfile Quando a imagem é criada, ela é passada pelo .dockerignore Documentação explicitamente ignorada storage Catálogo. Isso se deve ao fato de que storage é usado para armazenar arquivos carregados pelo locatário, pares de chaves e outras informações confidenciais ou privadas, que não devem ser empacotadas em um diretório genérico Docker na imagem e, em vez disso, deve ser montado dinamicamente em tempo de execução por meio de um volume de dados.

analisar docker run --rm Comando de backup

O modelo de comando de backup recomendado na seção Migração de dados tem os seguintes significados para cada parâmetro:

docker run --rm -v <volume_to_backup>:/source -v <host_backup_dir>:/backup <image> sh -c "<commands>"
montagens Significado e uso
docker run Inicie um novo contêiner.
--rm Os contêineres são excluídos automaticamente após a execução, o que é ideal para realizar tarefas únicas e evitar deixar para trás contêineres temporários inúteis.
-v :/source Fazer backup do Docker O volume de dados é montado no contêiner dentro do /source Catálogo.
-v :/backup Monte o diretório na máquina host que é usado para armazenar os arquivos de backup no diretório /backup Catálogo.
Especifique uma imagem de base leve, como alpineEle tem um tar e outras ferramentas comuns.
sh -c "..." executado dentro do contêiner shell comando. Por exemplo cd /source && tar czf /backup/backup.tar.gz . Indica a entrada no diretório de dados de origem e, em seguida, o empacotamento de todo o seu conteúdo no diretório de backup.

Recomendado

Não consegue encontrar ferramentas de IA? Tente aqui!

Basta digitar a palavra-chave Acessibilidade Bing SearchA seção Ferramentas de IA deste site é uma maneira rápida e fácil de encontrar todas as ferramentas de IA deste site.

caixa de entrada

Entre em contato conosco

voltar ao topo

pt_BRPortuguês do Brasil