Skip to main content

Deploy your first app

You’ll create an environment, deploy a small container app, and see instances, logs, and copies in the dashboard.

Before you start​

  • A connected cluster (previous step)
  • You are the organization owner, or your role can create environments and apps
  • A container registry you can push to (Docker Hub, GitHub Container Registry, or a private registry)

Build the image​

App (main.py)​

import time

def main():
while True:
print("heartbeat")
time.sleep(2)

if __name__ == "__main__":
main()

Dockerfile​

FROM python:3.12-slim

WORKDIR /app
COPY main.py .

CMD ["python", "main.py"]

Build, smoke-test, and push:

docker build -t xooshe-test-project:0.0.1 .
docker run --rm xooshe-test-project:0.0.1
docker push <REGISTRY_ADDRESS>/xooshe-test-project:0.0.1

Create an environment​

An environment is an isolated place for apps (for example demo-dev).

  1. Click Manage environments on the home dashboard. Manage environments button
  2. Enter a name and create it. Create environment modal
Terms we use

Xooshe says environment. In Kubernetes this is a namespace. See Terms we use.

Deploy​

  1. Click New App.
  2. Choose a stateless application.
  3. Enter image name and tag (<REGISTRY_ADDRESS>/xooshe-test-project and 0.0.1). Docker image and tag selection
  4. Fill general info (defaults are fine for this demo). General info for app
  5. On resources:
    • Select the environment you created
    • Set copies to 1 Resource allocation for app
  6. Click Finish.

You’re done when​

  • The app appears in the list and becomes healthy / running.
  • Open the app and check logs — you should see heartbeat about every two seconds.
  • You should see one instance for one copy.

If it fails​

SymptomFix
Image pull failedCheck registry name/tag and whether the registry needs credentials
App missing after deployConfirm the correct environment and that you clicked Finish
No logsConfirm the process writes to standard output
Apps managed by Xooshe

Apps you create in Xooshe can be edited, paused, restarted, and scaled here. Workloads created outside Xooshe may appear for visibility but cannot always be changed from the dashboard.