Compute Nest allows you to create services by importing a repository from GitHub, Gitee, a public GitLab, or Alibaba Cloud DevOps CodeUp. This feature simplifies service creation for developers and service providers, helping you build, test, update, and publish services to Alibaba Cloud Marketplace faster. This topic describes how to create a service from a Git repository.
Prerequisites
Before you create a service from a Git repository, ensure that you have a repository ready. For more information, see Create a Git repository that meets Compute Nest specifications.
Overview
You can convert your Git repository into a Compute Nest service. To get started, authorize Compute Nest to access your repository, import it, and then configure its basic settings. This feature supports multiple scenarios and configuration options:
-
Compute Nest supports importing repositories from GitHub, Gitee, public GitLab, and Alibaba Cloud DevOps CodeUp after you authorize access.
-
Multiple deployment scenarios are supported.
-
You can choose between private service and fully managed service.
Service type
Definition
Description
private service
A service that deploys resources and software into a customer account.
Use case: Suitable for PaaS and SaaS applications deployed within a VPC in the customer account.
fully managed service
A service that deploys resources and software in the service provider's account.
Use case: Suitable for PaaS and SaaS services deployed within a VPC in the service provider's account. The service provider fully manages the customer's cloud resources and applications. Compute Nest supports scenarios with customer-dedicated resources, including two modes: managed single-tenant (fully dedicated resources) and managed ACK multi-tenant (resources dedicated per ACK pod).
-
Multiple application runtimes and deployment types are supported.
Application runtime
Deployment type
Parameter
Description
container
Docker Compose
Docker Compose YAML path
Specifies the path to the Docker Compose file in the repository.
Docker Compose .env path
Specifies the path to the Docker Compose .env file in the repository. If no .env file exists in the repository, the default value (.env) is used.
User deployment parameters
Sets custom environment variables that users can provide during deployment. For example, your .env file contains
Password=test.You must configure fields such as Parameter Name, Environment Variable Name, Type, and Default Value. You can also configure advanced settings like Match Expression. To treat the parameter as a password, enable the Is Password Component toggle. Click the + Add button to add more parameters.
This allows users to enter a custom password during deployment, which replaces the variable's value in the .env file.
Dockerfile
Dockerfile path
Specifies the path to the Dockerfile in the repository.
User deployment parameters
Specifies the key for a Docker runtime environment variable. For example, in
docker run -e key=value,valueis the actual parameter value provided by the user during deployment.Advanced options: Docker image build parameters
Specifies Docker image build arguments. This is useful when your Dockerfile uses the multi-stage builds feature and requires environment variables to be set before the image is built.
User deployment parameters
Specifies the key for a Docker runtime environment variable. For example, in
docker run -e key=value,valueis the actual parameter value provided by the user during deployment.Service port
Specifies the port for the service. After deployment, the service is exposed at
ip:port.Security group inbound port
The inbound port of the security group, which acts as a firewall. Specify the ports to open based on your software's configuration.
Kubernetes cluster
Helm chart
Chart directory
Specifies the directory where the Helm chart is located. You can select a chart directory from the repository to configure the service.
Chart values
Defines variable parameters for chart deployment, often to override default values.
Output type
You can specify the output type, including the default instructions from the Helm chart or a custom output command.
Linux Shell
Source code
root directory
Specifies the root directory of the source code or application. Subsequent commands are executed in this directory.
User deployment parameters
Defines parameters to pass to the application's runtime command or script. Users will provide the actual values during deployment. For example, you can configure a parameter named
MyPassword. The user-provided value is set as thePASSWORDenvironment variable. This variable can be referenced in runtime commands and is automatically substituted during execution.For example, you can configure
echo "$PASSWORD"in the run command field to reference the parameter.Commands
Specifies the commands to run when the application starts.
base image
Specifies the base image. You can choose images like CentOS 7.9, Node.js 20, or Docker 26.
Service port
The port exposed by the application.
Security group inbound port
Specifies the inbound ports to open on the firewall.
Timeout period
Sets the timeout for the runtime command to prevent resource waste if the startup process runs too long.
-
-
Supports managed ECS image builds: To address potential network issues and failures when pulling Docker images within the Chinese mainland, Compute Nest can use Alibaba Cloud's network acceleration to pull Docker images from your repository to an ECS instance. Compute Nest then builds them into an ECS image, which helps prevent pull failures. This image is managed by Compute Nest and shared with your Alibaba Cloud account.
-
Supports service updates from the code repository. When you push new commits to the repository, you can update the service directly. Compute Nest automatically pulls the latest repository version to rebuild the service.
Procedure
Log on to the Compute Nest console.
-
In the left-side navigation pane, choose My Services. On the My Services page, click the Created Services tab, and then click Create Service.
-
On the Create Service page, configure the service information.
-
Select the creation method and set the repository information.
Parameter
Description
Select service creation method
Select Create Service from Repository.
Repository user/organization
If your repository belongs to an organization, you can select your personal repository or the organization name.
Repository name
Select the repository from which you want to create the service.
Repository branch
Select a branch from the repository.
After you select a branch, Compute Nest automatically scans it for a resource description file. If no file is detected, you cannot proceed to the next step.
-
After you select a repository, the service configuration page appears automatically. Configure the settings based on your requirements.
For example, to deploy LobeChat, which supports self-hosting via Docker Compose, you can select the corresponding configuration options. The User deployment parameters section allows you to parameterize environment variables from the Docker Compose .env file, enabling users to input custom values during instance deployment. After you complete the configuration, click Next Step: Basic Information Configuration.
The page is divided into Deployment Configuration and Environment Configuration sections. In the Deployment Configuration section, select the Service type (such as private service) and the service build region. In the Environment Configuration section, select the application runtime (such as container) and deployment type (such as Docker Compose), and configure the corresponding file paths.
-
Configure the basic information for the service.
Parameter
Description
Service icon
Upload an icon for the service. JPG and PNG formats are supported. For best results, use an image with a resolution of 192x192 pixels.
Service name
Enter a name for the service. The name must be 3 to 200 characters long and can contain Chinese characters, letters, digits, and underscores (_). A Chinese character counts as two characters.
The system automatically generates a name based on your repository information. You can use the default name or specify a new one.
Service description
Enter a description for the service. The description must be 10 to 500 characters long. A Chinese character counts as two characters.
Version description
Enter a description for the service version. The description must be 1 to 200 characters long. We recommend including the specific software version. Version descriptions must be unique within a service.
Service agreement documentation
Enter the name and URL of the custom service agreement document provided by the service provider.
-
-
Click Create Service, and then click OK in the confirmation dialog box. After the service creation request is submitted, click View Service in the notification.
-
Return to the My Services page. The service status is Creating. You can click
View Logsto monitor the creation process. If the creation fails, an error log is generated. You can use the log to troubleshoot and adjust your repository and parameter settings. Service creation is successful when the message BuildService Success appears in the log. -
Refresh the service page. The service status changes to Pending Pre-release.
Next steps
-
Update the service.
To update the service later, click the
Modify Versionbutton and select eitherUpdate in ConsoleorUpdate by Synchronized Repository. If you choose to update from the repository, Compute Nest pulls the latest files and rebuilds the service.The Update in Console option provides a visual interface for updates. Changes made in the console are not synchronized back to your repository.
-
Test the service.
After you save the service, you can test it yourself or pre-release it to specific customers for testing. For more information, see Test a service.
-
Publish the service.
After the service passes testing, submit it for review. Once approved, you can publish it. For more information, see Publish a service.