Skip to content

Docker Images

Deploy any Docker image to Basepod.

Quick Deploy

bash
bp create myapp
bp deploy myapp --image nginx:latest

From Docker Hub

bash
# Official images
bp deploy myapp --image postgres:16
bp deploy myapp --image redis:7-alpine
bp deploy myapp --image node:20-slim

# Community images
bp deploy myapp --image linuxserver/plex

From Other Registries

GitHub Container Registry

bash
bp deploy myapp --image ghcr.io/username/image:tag

Google Container Registry

bash
bp deploy myapp --image gcr.io/project/image:tag

Private Registries

Configure credentials in server settings, then:

bash
bp deploy myapp --image registry.example.com/image:tag

Image Tags

Specific Versions

bash
bp deploy myapp --image nginx:1.25.3
bp deploy myapp --image postgres:16.2

Latest

bash
bp deploy myapp --image nginx:latest

Alpine Variants (smaller)

bash
bp deploy myapp --image nginx:alpine
bp deploy myapp --image node:20-alpine

Environment Variables

Pass environment variables during deployment:

bash
bp deploy myapp --image postgres:16 \
  -e POSTGRES_USER=admin \
  -e POSTGRES_PASSWORD=secret \
  -e POSTGRES_DB=mydb

Or in basepod.yaml:

yaml
name: myapp
image: postgres:16
env:
  POSTGRES_USER: admin
  POSTGRES_PASSWORD: secret
  POSTGRES_DB: mydb

Volumes

Persist data with volumes:

yaml
name: myapp
image: postgres:16
volumes:
  - pgdata:/var/lib/postgresql/data

Port Mapping

Specify the container port:

bash
bp deploy myapp --image myimage --port 8080

Or in config:

yaml
name: myapp
image: myimage
port: 8080

Resource Limits

Set memory and CPU limits:

yaml
name: myapp
image: myimage
resources:
  memory: 512m
  cpus: 1.0

Updating Images

Pull the latest version and restart:

bash
bp deploy myapp --image nginx:latest

Or with a new tag:

bash
bp deploy myapp --image nginx:1.26

Released under the MIT License.