DevPod is a cloud-based integrated development environment (IDE) for Function Compute. It delivers a Visual Studio Code (VS Code)-like experience entirely in the browser — write, debug, and build container images without setting up anything locally. DevPod supports custom image runtime functions only and is especially suited for AI model development and containerized workflows.
Overview and advantages
DevPod gives you a full container development environment backed by persistent storage and image-building tools. Key advantages:
One-click launch — start a cloud IDE directly from the Function Compute console with no local configuration.
VS Code experience — familiar interface, extensions, and terminal reduce onboarding time.
Online collaboration — team members can develop and debug in a unified environment.
Persistent storage — your data in
/mnt/<function_name>survives instance restarts and deletions.Image building — package your current environment into a Docker image and push it to Alibaba Cloud Container Registry (ACR) for reuse or deployment.
Remote HTTP debugging — expose any HTTP service running inside DevPod through a proxy URL for testing and frontend integration.
AI-ready — preset environment variables (
HF_HOME,MODELSCOPE_CACHE,OLLAMA_MODELS) point to the persistent NAS directory, so model files are never lost between sessions.Consistent environments — your development, testing, and production environments stay in sync.
Limits
Before getting started, verify that your setup meets these requirements:
Runtime — DevPod supports custom image runtimes only. Python, Node.js, and PHP runtimes are not supported.
Operating system — AMD64-based Linux with glibc 2.28 or later. Recommended base images:
debian:10,ubuntu:20.04,centos:8, or later versions. Thealpineimage is not supported.Pre-installed tools —
curlmust be present in the image.User — the default user is
root.GPU — Function Compute GPUs use driver version 570.133.20, which corresponds to CUDA user-mode driver version 12.8. Use CUDA Toolkit 11.8 or later, and do not exceed the CUDA user-mode driver version provided by the platform. For details, see GPU driver version upgraded from 550.54.15 to 570.133.20.
Configure a DevPod in the console
Prerequisites
Before you begin, ensure that you have:
A custom image runtime function in your account. To create one, see Create a function
Procedure
Log on to the Function Compute console. In the left-side navigation pane, click Functions.
In the top navigation bar, select a region. On the Functions page, click the target function.
On the function details page, click the Code tab, then click Create DevPod.
In the DevPod interface, write and test your function code, and install dependencies as needed.
Persistent storage
All DevPod instances mount a NAS directory at /mnt/<function_name>. This directory is attached to the NAS file system bound to your function — not to any specific DevPod instance.
What persists and what doesn't:
| Scenario | /mnt/<function_name> | Other paths (local storage) |
|---|---|---|
| Stop and restart DevPod | Data retained | Data may be lost |
| Delete and recreate DevPod | Data retained | Data lost |
Files outside /mnt are stored in the instance's local storage and may be lost if the instance restarts. They are lost when the DevPod is deleted.
DevPod sets the following environment variables by default, pointing AI framework caches to the persistent NAS path:
HF_HOME=/mnt/<function_name>/hf
MODELSCOPE_CACHE=/mnt/<function_name>/modelscope
OLLAMA_MODELS=/mnt/<function_name>/ollamaThis means Hugging Face, ModelScope, and Ollama model files download to NAS once and remain available across all future DevPod sessions — no re-downloading needed.
Additional characteristics of persistent storage:
NAS content is not packaged into the image when you export one.
Data in
/mntis retained even after the DevPod is deleted.Storing large model files in
/mntkeeps your container image smaller.
Remotely debug HTTP services
DevPod exposes HTTP services running inside the instance through a proxy URL. After you start a service, the proxy address appears in the console — click Access Development Environment to open it directly.
Procedure
In the DevPod terminal, start an HTTP service. For example:
python -m http.server 9000In the console, click Access Development Environment. The proxy address follows this format:
https://<devpod-id>.cn-<region>.ide.fc.aliyun.com/proxy/9000/Access the service with the proxy URL:
curl https://<devpod-id>.cn-<region>.ide.fc.aliyun.com/proxy/9000/
Single-page applications (SPAs) built with React, Vue, or other frameworks that use absolute paths may fail to load static resources. The proxy path prefix /proxy/9000/ changes the base URL, which breaks absolute asset references.Build and save images
Package your DevPod environment — including installed code, dependencies, and configurations — into a Docker image and push it to ACR. Use this to lock in your development environment, share it with teammates, or deploy it as a function runtime.
Limits
Image building requires the DevPod to be in running state.
The ACR instance must be in the same region as the DevPod. ACR Personal Edition supports cross-region creation, but use the same region to avoid network latency and push failures.
Choose an ACR edition
| Feature | ACR Personal Edition | ACR Enterprise Edition |
|---|---|---|
| Fee | Free | Billed by instance type |
| Network | Public network | VPC internal network |
| Performance | Limited by public bandwidth | High-speed internal transfer |
| Best for | Individual learning and feature validation | Production environments and large images (>10 GiB) |
Prepare an ACR instance
ACR Personal Edition
Set up the following resources in the same region as your DevPod:
ACR Enterprise Edition
Set up the following resources in the same VPC as your DevPod instance:
Build an image
In the console, click Export Image.
Select the ACR edition (Personal or Enterprise) and configure the following fields:
Content in the NAS mount directory (
/mnt/<function_name>) is never packaged into the image.Field Description ACR Region Region where your ACR instance is located. Must match the DevPod region. ACR Namespace Select from the namespaces in your ACR instance. ACR Image Repository Select the target repository within the selected namespace. Image Name (Version) Set an image tag, such as v1.0orlatest.Custom Excluded Paths Directories to exclude from the image, for example /data/cache. Specify paths to prevent sensitive data from being packaged or to reduce image size. The following paths are excluded automatically:/.function_ai,/usr/local/share/jupyter/labextensions.Click OK and wait for the build and push to complete.
Billing
A DevPod runs as an FC function in your account, with the function name prefixed by _DEV_POD_. You are charged for:
Function Compute fees — invocations and resource usage while the DevPod is running. See Billing overview.
NAS storage fees — the mounted NAS file system is billed separately. See Billing of General-purpose NAS file systems.
Image build fees — building an image creates an FC function in your account to assist with the build process. You are charged for those function invocations.
Delete the DevPod and manually clean up related resources — including NAS — after you finish using it to avoid ongoing charges.
DevPod vs. WebIDE
| Dimension | WebIDE | DevPod |
|---|---|---|
| Supported runtimes | Python, Node.js, PHP, and custom runtimes | Custom image runtimes only |
| Interface areas | Four: resource manager, file editor, function operations, command-line terminal | Three: resource manager, command-line terminal, file editor |
| Storage limits | 5 GB per user | Fewer than 100,000 changed files, total size under 5 GB |
| Persistent storage | Dedicated Edition supports NAS and OSS | Built-in NAS mount at /mnt/<function_name>. Data is saved permanently. |
| VPC access | Not supported in Serverless Edition. Supported in Dedicated Edition. | Based on function configuration |
| Image building | Not supported | Exports images to ACR (Personal or Enterprise Edition) |
| Remote debugging | Not supported | HTTP service proxy debugging |
| AI scenario support | Not specified | Preset environment variables: HF_HOME, MODELSCOPE_CACHE, OLLAMA_MODELS |
| Edition | Serverless Edition or Dedicated Edition | No editions — all instances are dedicated |
| Primary use | Lightweight code editing, debugging, and dependency packaging | Containerized development, image building, and AI model development |
| Billing | Serverless Edition is free. Dedicated Edition billed per instance. | FC function usage + NAS storage |
When to use WebIDE: lightweight editing and debugging for Python, Node.js, or PHP functions. The Serverless Edition is free and requires no setup.
When to use DevPod: building, testing, and packaging custom container environments — especially for AI model development and workflows that require persistent model storage, GPU access, or image export.