m4sterchain opened a new issue, #189:
URL: https://github.com/apache/incubator-teaclave-trustzone-sdk/issues/189

   The current Quick Start for the Teaclave TrustZone SDK requires first-time 
Trusted Application (TA) developers to manually follow multiple setup steps, 
making the onboarding process cumbersome. Meanwhile, the project already has 
reproducible CI environments in place—but those aren't directly usable by 
developers.
   
   This proposal introduces prebuilt Docker images tailored for TA development, 
aiming to streamline the setup process and accelerate prototyping. These images 
will be parameterized built and versioned, which include:
   
   - Specific combination of Teaclave SDK version and OP-TEE version
   - Target platform (e.g. qemu_v8) and architecture  for OP-TEE setup
   - Build mode (e.g. build or dev) 
   - Runtime configuration (e.g. std or no_std) for Teaclave TA build
   
   ## Docker Image Naming Convention
   Images will follow this format:
   ```
   
teaclave-${SDK_VER}-optee-${OPTEE_VER}-${platform}-${ARCH}-${std|no_std}-${build|dev}
   ```
   Examples:
   ```
   teaclave-0.4.1-optee-4.5.0-qemu_v8-arm-no_std-build
   teaclave-0.4.1-optee-4.5.0-qemu_v8-aarch64-std-build
   teaclave-0.4.1-optee-4.5.0-qemu_v8-aarch64-no_std-dev
   ```
   ## Image Types
   - 🛠️ build: Contains all necessary toolchains to build TAs for the target 
platform.
   - 🧪 dev: Superset of build, with additional runtime dependencies to run/test 
TAs on QEMU for daily development.
   
   ## Benefits
   - 🧃 One-step setup for new developers
   - 📦 Reproducible builds with pinned dependencies
   - 🧱 Configurable via Docker build arguments for advanced use cases
   - 🚀 Enables real "Quick Start" experience
   
   ## Example Usage
   Once the images are published on DockerHub, beginner TA developers can start 
using the SDK out of the box with minimal setup, ideal for experimenting and 
developing in Rust. For more advanced developers, the provided Dockerfiles 
expose configurable build arguments, allowing them to customize and build 
images tailored to their specific platforms or preferences.
   
   ```
   git clone https://github.com/apache/incubator-teaclave-trustzone-sdk.git
   cd incubator-teaclave-trustzone-sdk
   
   docker run -it -v $(pwd):/root/teaclave-sdk \
     teaclave-0.4.1-optee-4.5.0-qemu_v8-arm-no_std-build /bin/bash
   
   cd teaclave-sdk
   make examples
   ...
   ```
   
   @ivila @DemesneGH — since you're the experts on the existing CI image setup, 
I’d love your input on extending the multi-stage Dockerfile to support 
customizable build/dev images for TA developers. This is still a rough 
proposal, so feel free to refine any part of it. Just wanted to share the 
concept and get your thoughts on how we might align this with the existing CI 
flow.
   
   The idea is to streamline onboarding for beginners by providing prebuilt 
images, while also enabling advanced users to tweak their setup via build 
arguments. Here’s a rough sketch of the direction:
   ```
   ARG SDK_VER=0.4.1
   ARG OPTEE_VER=4.5.0
   ARG PLATFORM=qemu_v8
   ARG ARCH=aarch64
   ARG STD_TYPE=no_std
   
   FROM ubuntu:24.04 AS base
   # Install dependencies (toolchains, etc.)
   
   FROM base AS build
   # Setup build environment based on parameters
   
   FROM build AS dev
   # Setup dev environment (e.g., QEMU, test tools)
   ```
   Build example:
   ```
   docker build \
       --build-arg SDK_VER=${SDK_VER} \
       --build-arg OPTEE_VER=${OPTEE_VER} \
       --build-arg PLATFORM=${PLATFORM} \
       --build-arg ARCH=${ARCH} \
       --build-arg STD_TYPE=${STD_TYPE} \
       --target ${stage} \
       -t ${TAG} 
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@teaclave.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@teaclave.apache.org
For additional commands, e-mail: dev-h...@teaclave.apache.org

Reply via email to