Skip to content

Docker Deploy

If your application already has a Docker image, or you want to use a custom Dockerfile for full control over the build process, Docker deployment is the most direct option.

You can deploy directly from Docker Hub or other public image registries:

  1. Create a new application in the Piora dashboard
  2. Select “Docker Image” as the deployment source
  3. Enter the image name and tag
Terminal window
# Image name examples
nginx:alpine
node:20-alpine
postgres:16
ghost:5-alpine

Piora supports connecting to private image registries:

Add Docker Hub credentials in the application settings:

  • Username — Your Docker Hub account
  • Password/Token — Docker Hub access token
ghcr.io/your-org/your-image:latest

Requires a GitHub Personal Access Token with read:packages permission.

Supports any private registry compatible with Docker Registry API v2:

registry.example.com/your-image:latest

When deploying Docker images, you need to specify the port your application listens on:

SettingDescriptionExample
Container portPort the app listens on inside the container3000
ProtocolHTTP or TCPHTTP

Traefik automatically routes external traffic to the specified container port — no manual port mapping needed.

Set environment variables for containers in the dashboard:

Terminal window
NODE_ENV=production
DATABASE_URL=postgresql://user:pass@db:5432/app
REDIS_URL=redis://redis:6379
SECRET_KEY=your-secret-key

Docker containers are stateless by default — data is lost when containers restart. If your application needs persistent data:

  1. Add a “Volume” in the application settings
  2. Specify the mount path inside the container
# Example: mount a data directory
Container path: /app/data
Volume name: my-app-data

Configure health checks to ensure containers are running correctly before receiving traffic:

  • Check path — HTTP endpoint (e.g., /health)
  • Check interval — Time between each check
  • Timeout — Maximum time to wait for a response
  • Retries — How many consecutive failures before marking unhealthy

When you need to update to a new image version:

  1. Update the image tag (if using a fixed version)
  2. Click “Redeploy” in the dashboard
  3. Piora pulls the latest image and performs a rolling update

If using the latest tag, clicking redeploy will automatically pull the newest version.