Projects
Manage your Canine projects from the command line.
List Projects
View all projects in your account:
canine projects list
Output:
| ID | NAME | NAMESPACE | REPOSITORY_URL | BRANCH | STATUS | CLUSTER_ID | CLUSTER_NAME |
|----|-------------|----------------|-----------------------------|--------|----------|------------|--------------|
| 1 | my-app | my-app-prod | github.com/user/my-app | main | Deployed | 5 | production |
| 2 | api-service | api-service-ns | github.com/user/api-service | main | Deployed | 5 | production |
Project Status Values
| Status | Description |
|---|---|
Creating | Project is being set up |
Deployed | Project is running |
Destroying | Project is being removed |
Deploy a Project
Trigger a deployment for a project:
canine projects deploy --name <PROJECT>
Options
| Option | Description |
|---|---|
--name <PROJECT> | Project name (required) |
--skip-build | Skip the build step and deploy existing image |
Examples
Deploy with a new build:
canine projects deploy --name my-app
Deploy without rebuilding:
canine projects deploy --name my-app --skip-build
Output:
Build started
View deployment: https://canine.sh/projects/my-app/deployments/abc123
Run Commands
Run any command in your project's environment:
canine projects run --project <PROJECT> <COMMAND>
This command:
- Downloads the kubeconfig for your project's cluster
- Creates an ephemeral pod with your project's environment
- Executes the specified command
Examples
Open an interactive shell:
canine projects run --project my-app /bin/sh
Open a Rails console:
canine projects run --project my-app bundle exec rails c
Open a Django shell:
canine projects run --project my-app python manage.py shell
Output:
Starting a one off container in: my-app...
Created one off pod: my-app-oneoff-abc123
Waiting for pod to be ready... |
The ephemeral pod is cleaned up automatically when the command exits.
Prerequisites
The run command requires kubectl to be installed on your machine. See Installation for details.
List Processes
View running pods/processes for a project:
canine projects processes --project my-app
Output:
| NAME | NAMESPACE | STATUS |
|--------------------------|-----------|---------|
| my-app-web-abc123 | my-app-ns | Running |
| my-app-worker-def456 | my-app-ns | Running |
Process Status Values
| Status | Description |
|---|---|
Pending | Pod is being scheduled |
Running | Pod is running |
Succeeded | Pod completed successfully |
Failed | Pod failed |
Unknown | Status cannot be determined |
View Logs
Get logs from a running process:
canine projects logs --project <PROJECT>
If --process is not specified, you'll be prompted to select a process interactively.
Options
| Option | Description |
|---|---|
--project <PROJECT> | Project name (required) |
--process <PROCESS> | Process name (interactive selection if omitted) |
--tail | Follow log output in real-time |
Examples
View logs for a specific process:
canine projects logs --project my-app --process my-app-web-abc123
Follow logs in real-time:
canine projects logs --project my-app --tail