《OpenShift / RHEL / DevSecOps 汇总目录》
本系列在 OpenShift 4.17 + Dev Spaces 3.17.0 验证
文章目录
Workspace 运行环境
开发者使用 Workspace 的开通流程
- 开发人员访问 DevSpaces 地址(该地址实际是由 che-gateway 服务处理)。
- 如果用户没有登录,将由 OAuth 重定向到 OpenShift 登录页面。
- 用户登录后,如果用户没有运行 Workspace 的项目,则为用户自动创建该项目。
- 用户缺省的项目名为 “用户名-devspaces”。
- 用户进入自己的 Dev Spaces 仪表盘页面。
- 用户创建一个 Workspace。
- 后台基于 DevWorkspaceTemplate 创建一个 DevWorkspace 实例。该实例会运行 Container 为开发人员提供 Workspace 开发环境。
启动 Workspace 的其他方法
可以使用以下方法使用 Git Repo 或 Devfile 启动 Workspace。
- https://<openshift_dev_spaces_fqdn>#https://github.com/che-samples/cpp-hello-world
- https://<openshift_dev_spaces_fqdn>#https://raw.githubusercontent.com/che-samples/cpp-hello-world/main/devfile.yaml
Dev Spaces 仪表盘的管理功能
开发者在登录 Dev Spaces 后会跳转到自己的 Dev Spaces 仪表盘页面。用户可以在 Dev Spaces 仪表盘中可以对 Workspace 进行各种操作,并配置 Workspace 使用到的相关资源:
- 创建新的 Workspace
- 查看、列出和管理现有 Workspace
- 启动、停止和删除 Workspace
此外还可进入 User Preferences,为 Workspace 提供配置:
- 配置 Container Registry 凭据
- 查看 Git Services (缺省有 github 的配置)
- 配置 Personal Access Token
- 查看 Gitconfig
- 设置 SSH Ksy
运行 Workspace 的容器镜像
基于容器的应用开发环境
Workspace是提供给单个用户的开发环境的容器化实例。用户可以 Workspace 中访问、编写、构建、运行或调试代码。运行 Workspace 的容器中包含开发人员所有用到的工具,包括:
- 语言运行时/开发工具包,如 Node.js、JDK、Python
- Maven 或 Gradle 等构建工具
- 与 OpenShift 或其他工具交互的 CLI
- 运行应用程序服务器、消息代理等特定进程的二进制文件
通用开发者镜像
用户可以在 Devfile 文件中定义 Workspace 用到的容器镜像。如果在启动 Workspace 的时候其项目仓库中没有 Devfile 文件,Dev Spaces 会使用一个缺省的 Devfile 文件和通用开发者镜像 (Universal Developer Image - UDI)。
UBI 是 Workspace 默认使用的镜像,它是基于 Red Hat Universal Base Image 构建的。在 UDI 环境中包含以下工具和运行环境:
使用其他镜像
可以在 Devfile 中的 components 使用其他容器镜像作为 Workspace 的运行环境。例如下面示例:
schemaVersion: 2.2.2
metadata:
name: java-springboot
displayName: Spring Boot
description: Java application using Spring Boot® and OpenJDK 17
icon: https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/spring.svg
tags:
- Java
- Spring
projectType: springboot
language: Java
version: 1.4.0
starterProjects:
- name: springbootproject
git:
remotes:
origin: "https://github.com/devfile-samples/springboot-ex.git"
components:
- name: tools
container:
image: registry.access.redhat.com/ubi9/openjdk-17:1.20-2.1721752931
command: ["tail", "-f", "/dev/null"]
。。。。。
参考
https://redhatquickcourses.github.io/devspaces-workspaces/devspaces-workspaces/3/workspaces/dashboard.html