Container Image Support Specification
This document details Rainbond's support specifications for creating components based on Docker images, helping you understand which types of images are suitable for running on the Rainbond platform and how to correctly configure images for the best experience.
Image Type Support Description
Rainbond supports most standard Docker images, but there are some specific types of images that are not suitable for direct operation on the platform.Understanding these differences is crucial for successful application deployment.
Image Types Not Supported for Direct Operation
The following types of images cannot be directly operated on Rainbond:
-
Basic System Images: Such as:
alpine
,centos
,debian
and other basic system images. The startup process of these images is not foreground by default, and the container will exit immediately after startup.They are usually only used for local runtime to open stdin for TTL interactive operations and are not suitable as long-running services. -
Basic Language Environment and Tool Images: Such as: golang compilation environment, docker compilation environment, maven compilation environment, etc. These images are mainly used for the build and compilation process, not for running actual services.They usually exit after completing specific tasks and are not suitable as continuously running applications.
Do not directly use basic system images to create components. You should build images containing actual application services on this basis.
Recommended Image Types
The following types of images are very suitable for running on the Rainbond platform:
Middleware Class
- Databases: MySQL, MongoDB, Redis
- Web Servers: Tomcat, Nginx, Apache
- Message Queues: RabbitMQ, Kafka
Web Tools Class
- phpMyAdmin, Adminer, Grafana, etc
Basic Components Class
- SFTP components, MinIO object storage, etc
Other Components Providing TCP/UDP Services
- All containerized applications designed for long-term operation and providing network services.
Image Detection and Configuration Specifications
Image Accessibility Requirements
- The image must be able to be normally obtained by the Rainbond cluster server
- The image name must be accurate and exist in the corresponding image repository
- Private repository images need to provide correct account and password
- Self-built repositories should configure HTTPS or configure Docker trust settings for Rainbond cluster nodes
Image Attributes Automatically Obtained by Rainbond
Rainbond will automatically extract the following information from the image:
- Port Information: Obtained from the
EXPOSE
instruction in Dockerfile - Environment Variables: As the recommended configuration method for cloud-native applications
- Storage Mounts: Obtained from the
VOLUME
instruction in Dockerfile
Components created using Docker Compose only obtain relevant information from the compose configuration, while components created with the docker run command obtain information from both the creation command and the image.
Default Component Configuration Settings
Memory Allocation
- Default allocation: 512MB memory
- Exception: When created via docker run or docker compose, if memory parameters are explicitly set, the set value will be adopted
Deployment Type Settings
-
Default setting: Stateless deployment type
-
Exception: The following image names will automatically be set to stateful deployment type
- mysql
- mariadb
- mongo
- redis
- tidb
- zookeeper
- kafka
- mysqldb
- mongodb
- memcached
- cockroachdb
- cockroach
- etcd
- postgres
- postgresql
- elasticsearch
- consul
- percona
- mysql-server
- mysql-cluster
For example, the following images will be deployed as stateful types:
- mysql:latest
- hub.example.com/xxx/mysql:5.5
- xxx/mysql:5.7