使用Studio部署Docker应用到Olares上

本教程将引导您通过Studio部署一些简单的Docker应用到Olares上。

  • 本方案仅限单镜像的应用部署,如果应用服务依赖多个镜像,建议您参照开发文档进行移植

  • 使用Studio部署的应用存在较多局限,在应用升级、数据持久化方面可能存在不稳定或者冲突的情况,因此建议仅作为开发测试和临时使用。如果您需要长期、稳定的使用某应用,建议您通过应用商店的自定义安装方式进行部署。

前置条件

  • Olares系统升级至1.11.6及以后版本

  • 需要移植的应用已容器化,建议参照 Docker 部署命令 或 Docker Compose文件填写

部署一个简单应用

  1. 创建应用

  • 打开Studio,点击创建新应用

  • 输入应用名称

注意

应用名称仅允许小写字母和数字组合,您可以之后在yaml文件中修改title字段来修改其展示的名称

  • 选择 “将自己的容器部署到Olares上”

  1. 填写容器部署信息

  • 首先找到镜像地址,即badapple9/speedtest-x部分,填入“容器镜像”一栏

  • 然后找到容器端口,即Docker命令中的 -p 后面的参数,或者Docker Compose中的ports

    • 参数中前面的部分是HOST_PORT,后面部分是CONTAINER_PORTHOST_PORT一般对应本地部署时要访问应用时在地址栏要添加的端口号,如http://127.0.0.0:14980,但在Olares中,系统已经托管了外部访问的入口了,所以一般不需要您设置此端口。

    • 我们只需要将后面的CONTAINER_PORT部分填入“容器端口”一栏即可。在本例中就是80

  • 设置实例规格,选择合适的CPU和内存需求(这里填写的是最低的CPU和内存资源要求)。如果需要GPU和数据库中间件(目前支持PG和Redis),可以点击启用

  • 点击 创建 按钮完成应用创建
  1. 检查和修改应用配置文件

容器创建完成后会生成应用的安装包文件,您可以检查和修改应用的配置信息。例如,您可以修改应用标题

  • 打开安装包中的OlaresManifest.yaml文件,找到entrance和metadata下的title,您可以在此修改应用显示在桌面上的标题,例如改为 Speedtest-X

  • 点击右上角的保存按钮保存对安装包的修改
  1. 部署应用

  • 点击右上角的 应用 按钮开始部署当前应用

  • 部署成功后你可以看到应用的详情和安装过程中的事件等。此处的页面和操作与控制面板基本一致

如果应用详情没有出现,您可能需要手动刷新下页面来获取应用最新的状态

  • 点击右上角的预览按钮可以打开应用,您也可以在桌面启动器上点击应用。

使用Studio部署的应用,会自动在应用标题后面加上-dev的标识,以便和正式安装的应用进行区分

  • 您可以在Studio中停止或者重启应用

  1. 完善和修改应用

如需修改应用,您可以点击右上角的编辑按钮,继续修改应用的安装包

  • 例如,我们更换下应用的图标,保存后在此点击右上角的应用。此时应用会使用更新后的安装包重新安装,安装完成后就会显示新的图标啦

如果未检测到安装包修改,点击应用不会重新安装应用,而是直接返回到应用状态栏

  1. 下载应用安装包

当您对应用充分测试确保各项功能都符合预期时,您可以下载应用的安装包,以便在应用商店进行自定义安装管理。

  1. 卸载或删除应用

您可以通过右上角的按钮从系统中卸载当前应用。应用卸载后,在Studio内仍然会保留该应用的项目,您仍然可以查看和编辑这个应用的安装包。

如果您选择删除应用,Studio将卸载该应用,并删除应用的项目。此操作不可恢复,请谨慎使用。

  1. 使用应用商店的自定义方式安装应用

  • 打开应用商店,选择 我的Olares,切换到自定义标签下。点击右上角的上传自定义Chart

  • 上传刚才下载的安装包,等待自定义安装完成。安装完成后,点击打开按钮打开应用程序即可。

为应用添加环境变量、存储和中间件

一些应用可能需要更复杂一些的设置,Studio支持配置环境变量、存储和部分数据库中间件。可以满足大部分简单Docker应用部署的需求。

添加环境变量和存储

一些应用需要在部署时配置特定的环境变量,以及指定存储的路径。例如https://dockerapps.com/archives/wallos。您可以参照应用的Docker命令或Docker Compose进行相应配置。

找到环境变量

找到Docker命令中 -e 后面的参数,或者Docker Compose中的environment下的键值对。在本例中,就是 TZAsia/Shanghai

添加环境变量

点击Studio里环境变量上的添加按钮,分别将键TZ和值 Asia/Shanghai分别填入弹窗中。如有多个环境变量,按此方法依次添加即可。

找到存储路径

找到Docker命令中 -v 后面的参数,或者Docker Compose中的 volumes 下的路径。 : 前面的路径指主机路径HostPath,这个路径对应你希望文件存储的位置。: 后面的路径指容器内部的文件路径,也叫容器挂载路径MountPath,我们拷贝Docker配置文件中的路径即可。在此示例中,有两个存储路径需要设置,挂载路径分别为

/var/www/html/db/var/www/html/images/uploads/logos

添加存储路径

点击Studio里存储卷上的添加按钮,分别输入主机路径和挂载路径。

其中主机路径有3个可选的目录。

  • /app/data目录为应用数据目录,该目录下的数据可以跨节点存取,且在应用卸载后不会默认删除。在Studio中安装时,对应 Files/Data/studio 下的目录。

  • /app/cache目录为应用数据目录,该目录下的数据存放在节点本地磁盘上,在应用卸载后会被删除。在Studio中安装时,对应 Files/Cache/<device-name>/studio 下的目录。

  • /app/Home目录即用户数据目录,对应Files首页下的目录,主要用于读取外部的用户文件。应用卸载后不会删除。

注意:

  • 填写的主机路径必须以 / 开头

  • 使用Studio部署时,程序会自动给主机路径前加上应用名称,例如应用名为test,主机目录设置为 /app/data 下的/folder1,则安装后的应用目录为Files/Data/studio/test/folder1

填写示例:

例子中存放db的文件读写要求较高,且卸载时应当被删除。所以我们将它添加到/app/cache目录下。而logo图片数据卸载重装后可以复用,我们将它添加到/app/data目录下。挂载路径分别填写上一步中查找到的/var/www/html/db/var/www/html/images/uploads/logos

添加GPU

如果您的应用需要使用GPU,需要在实例规格中开启GPU选项,并选择主机显卡的制造商。

添加数据库中间件

如果想使用 Postgres 或者 Redis,必须在实例规格启用对应的中间件,并在环境变量中添加对应的字段。我们提供了对应的变量名称,可供您填写动态的环境变量。

Postgres

使用方式 说明
$(PG_USER) 对应申请 PostgreSQL 中的 username
$(PG_DBNAME) 对应申请中的 database name
$(PG_PASS) 对应申请中的 password
$(PG_HOST) 系统为 APP 指定的数据库服务地址
$(PG_PORT) 系统为 APP 指定的数据库服务的端口

举例:

Redis

使用方式 说明
$(REDIS_HOST) 系统为 APP 指定的 Redis 服务地址
$(REDIS_PORT) 系统为 APP 指定的 Redis 服务的端口
$(REDIS_USER) 对应申请 Redis 中的 username
$(REDIS_PASS) 对应申请Redis 中的 password

为应用添加图标、宣传图等图片资料

您可以使用为您的应用添加图标和宣传图等来进一步美化应用的展示效果。首先您需要根据应用商店的规范准备好相关的应用素材:

  • 应用的图标是您的应用在Olares系统中最广泛使用的视觉符号。图标必须为 PNG 或 WEBP 格式,大小不超过 512 KB,尺寸为 256x256 像素。

  • 应用的特色图片会展示在 应用商店 > 我的Olares 中,可以让您直观的了解应用界面。您需要一张 JPEG、PNG 或 WEBP 格式的图片,大小不超过 8MB,尺寸为 1440x900 像素。

  • 如果您希望将应用提交到应用商店,我们还建议您上传至少 2 张宣传图用于应用展示。宣传图图片同样为 JPEG、PNG 或 WEBP 格式,每张大小不超过 8MB,尺寸为1440x900像素。你最多可以上传 8 张截图。

如何上传图片

  • 点击或拖拖拽文件到上传区域内。点击图片可以进行简单的编辑操作

  • 确认图片没问题后,点击上传按钮。图片上传成功后会给出图片链接地址

  • 点击复制按钮,可以一键复制图片地址。只需要将图片地址粘贴到OlaresManifest.yaml 文件下对应的位置即可。以下是一个OlaresManifest.yaml示例
metadata:
  name: speedtest
  icon: https://d2vtcb1wv8xa85.cloudfront.net/2025/04/7c3b9c5764f3cbdaef8af630b47ccae3.png
  description: app speedtest
  appid: speedtest
  title: Speedtest-X
  version: 0.0.2
  categories:
  - Utilities
  target: ""
entrances:
- name: speedtest
  host: speedtest
  port: 80
  icon: https://d2vtcb1wv8xa85.cloudfront.net/2025/04/7c3b9c5764f3cbdaef8af630b47ccae3.png
  title: Speedtest-X
  authLevel: private
  openMethod: default
spec:
  versionName: 0.0.1
  featuredImage: https://d2vtcb1wv8xa85.cloudfront.net/2025/04/28a270663e5cf915e29a3d49343aaf57.jpg
  promoteImage:
  - https://d2vtcb1wv8xa85.cloudfront.net/2025/04/28a270663e5cf915e29a3d49343aaf57.jpg
  - https://d2vtcb1wv8xa85.cloudfront.net/2025/04/39011d4b0a26602dc7236f1a69b7409d.jpg
  - https://d2vtcb1wv8xa85.cloudfront.net/2025/04/354d1e90bcfe1a17d4bdb7965676d96c.jpg
  - https://d2vtcb1wv8xa85.cloudfront.net/2025/04/599374540d387d53a51e7fa9f3751786.jpg
  fullDescription: ""
  upgradeDescription: ""
1 个赞