WSO2 API Docker数据持久性问题

bf1o4zei  于 2023-03-29  发布在  Docker
关注(0)|答案(1)|浏览(206)

下午好,我已经尝试让我的数据持久化,对于docker的wso 2 API管理器,但是我没有成功,尽管我去了文档给我的路径:
https://apim.docs.wso2.com/en/4.0.0/install-and-setup/setup/reference/common-runtime-and-configuration-artifacts/#persistent-runtime-artifacts
我已经创建了一个docker-compose.yml文件,在其中我定义了卷,我尝试了各种路径,但是,我无法获得任何结果。这是我的文件(注解的路径,是我尝试的路径,但仍然获得相同的结果):

networks:
  BeegonsFiware:
    driver: bridge
services:
  web:
    build: ./dockerfiles/python
    ports:
      - "5000:5000"
    hostname: web
    expose:
      - "5000"
    networks:
      - BeegonsFiware
  redis:
    image: "redis:alpine"
  api-manager:
    build: ./dockerfiles/apim
    volumes:
      - '/home/franklin/Escritorio/composetest/dockerfiles/apim/server/:/wso2am-4.0.0/repository/deployment/server/'
      - '/home/franklin/Escritorio/composetest/dockerfiles/apim/tenants/:/wso2am-4.0.0/repository/tenants/'
      - '/home/franklin/Escritorio/composetest/dockerfiles/apim/database/:/wso2am-4.0.0/database/'
      # - wso2:/wso2am-4.0.0/
      # - /home/franklin/Escritorio/composetest/dockerfiles/apim/backup/:/wso2am-4.0./
      # - wso2:/wso2am-4.0.0/repository/deployment/server/
      # Otras Pruebas
      # - '/home/franklin/Escritorio/composetest/dockerfiles/apim/userstores/:/wso2am-4.0.0/repository/deployment/server/userstores/'
      # - '/home/franklin/Escritorio/composetest/dockerfiles/apim/resources/:/wso2am-4.0.0/repository/resources/'
      # - '/home/franklin/Escritorio/composetest/dockerfiles/apim/conf/:/wso2am-4.0.0/repository/conf/'
      # - '/home/franklin/Escritorio/composetest/dockerfiles/apim/bin/:/wso2am-4.0.0/bin/'
    ports:
      - "9443:9443"
      - "8280:8280"
      - "8243:8243"
    networks:
      - BeegonsFiware
volumes:
  wso2:

执行docker compose up会创建我为要存储的卷定义的文件夹,但不会保存任何数据。
Docker合成前的文件夹:
https://ibb.co/nMjysWJ
docker合成后的文件夹(为空文件夹):
https://ibb.co/c3D9K2S
文件夹已创建,但未保存任何数据。
然后我在API管理器中创建API,但是当Docker compose down然后Docker compose up时,所有API都丢失了。
这些是我的规格:

  • Ubuntu 22.04.2语言版本
  • Docker版本23.0.1,构建版本a5 ee 5 b1
  • WSO 2 API管理器:4.0.0

我所期望的结果是复制所有这些文件:
首先,我输入容器:
docker exec -it <ID_CONTAINER> bash
我转到以下文件夹:

/home/wso2carbon/wso2am-4.0.0/repository/deployment/server

以下是我想保存的文件:

  • 工件图元文件
  • 事件发布者
  • 执行计划
  • 网络应用程序
  • axis2modules
  • 事件接收器
  • jaggeryapps
  • axis2services
  • 事件流
  • 突触配置

在我的计算机上的以下文件夹中:

/home/franklin/Desktop/composetest/dockerfiles/apim/server
0x6upsns

0x6upsns1#

正确的路径是以下而不是/wso2am-4.0.0/repository

/home/wso2carbon/wso2am-4.0.0/repository/*
<API-M_HOME> == /home/wso2carbon/wso2am-4.0.0

此外,在启动服务器之前,您可能必须将默认API Manager分发版中的内容复制到这些目录中,否则您将挂载一个空目录。此外,不要挂载不必要的文件夹,因为这会影响性能,特别是当您的挂载位于NFS等位置时。

相关问题