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

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.