Prerequisites
- A project in Orchard
- A Docker image accessible from the cluster (public or with credentials)
Creating a Deployment
1
Navigate to your project
Open the project where you want to create the deployment.
2
Click 'New Deployment'
Click the New Deployment button.
3
Select 'From Image'
Choose the From Image deployment method.
4
Configure the deployment
Fill in the required fields:
| Field | Description | Example |
|---|---|---|
| Name | Unique name for this deployment | api-server |
| Image | Full Docker image URL with tag | nginx:latest |
| Port | Primary port your app listens on | 8080 |
| Replicas | Number of instances to run | 2 |
5
Add environment variables (optional)
Add any environment variables your application needs.
6
Configure networking (optional)
Choose whether to expose your deployment publicly.
7
Create
Click Create Deployment to start your application.
Image Sources
Orchard can pull images from various sources:- Docker Hub
- GitHub Container Registry
- Custom Registry
For public Docker Hub images, use the simple format:For official images, you don’t need a registry prefix.
Image Tags
Always specify an image tag to ensure consistent deployments:| Tag Type | Example | Use Case |
|---|---|---|
| Specific version | nginx:1.25.3 | Production deployments |
| Minor version | nginx:1.25 | Auto-update patch versions |
| Latest | nginx:latest | Development only |
| Git SHA | myapp:abc123f | CI/CD pipelines |
Port Configuration
Single Port
For applications with one port:Multiple Ports
For applications with multiple ports (e.g., HTTP and gRPC):| Name | Container Port | Service Port | Protocol |
|---|---|---|---|
| http | 8080 | 80 | TCP |
| grpc | 9090 | 9090 | TCP |
Updating the Image
To deploy a new version of your image:1
Go to your deployment
Open the deployment you want to update.
2
Open Settings
Navigate to the Settings tab.
3
Update the image
Change the image tag to the new version (e.g.,
myapp:v2.0.0).4
Save
Click Save. Orchard will pull the new image and perform a rolling update.
Rolling Updates
When you update an image, Orchard performs a rolling update by default:- New pods with the updated image are created
- Once new pods are healthy, old pods are terminated
- This ensures zero downtime during updates
Example: Deploying nginx
Here’s a complete example of deploying nginx:1
Create deployment
- Name:
web-server - Image:
nginx:1.25-alpine - Port:
80 - Replicas:
2
2
Add environment variables
NGINX_HOST:example.comNGINX_PORT:80
3
Expose publicly
Enable Expose Public to create a LoadBalancer service.
Troubleshooting
Image pull errors
Image pull errors
If your deployment fails with an image pull error:
- Verify the image name and tag are correct
- Check if the image exists in the registry
- For private registries, ensure pull secrets are configured
Container crashes immediately
Container crashes immediately
If pods keep restarting:
- Check the container logs for error messages
- Verify environment variables are correct
- Ensure the port configuration matches your application
Application not responding
Application not responding
If the deployment is running but not responding:
- Verify the port matches what your application listens on
- Check if a service has been created
- Review network policies that might block traffic