Sign inSign up

codingjoe/the-box-postgres:main

Manifest digest

sha256:e68ef257efe32841ef721d391c47907168815374d0f4c42b467c216541ace848

Last pushed

about 1 month by codingjoe

Type

Compose

Manifest digest

sha256:e68ef257efe32841ef721d391c47907168815374d0f4c42b467c216541ace848

Compose file content

name: the-box-web
services:
  web:
    image: traefik/whoami:v1.12.0 # placeholder image for OCI artifact
    environment:
      PORT: ${PORT:-8000}
      HOSTNAME: ${HOSTNAME:-localhost}
    networks:
      - app
      - app-wan
      - caddy
    labels:
      - "caddy=${HOSTNAME:-localhost}"
      - "caddy.encode=zstd br gzip"
      - "caddy.reverse_proxy={{upstreams ${PORT:-8000}}}"
      - "caddy.reverse_proxy.lb_policy=round_robin"
      - "caddy.reverse_proxy.health_uri=/"
      - "caddy.reverse_proxy.health_headers.X-Forwarded-Host=${HOSTNAME:-localhost}"
      - "caddy.reverse_proxy.health_headers.X-Forwarded-Proto=https"
      - "caddy.cache"
    deploy:
      replicas: 2
      resources:
        limits:
          cpus: '2' # Limit cores of the CPU
          memory: 512M # Limit to 512MB of RAM
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 3
        window: 120s
    stop_grace_period: 1m # Allow up to 1 minute for graceful shutdown
networks:
  app:
    internal: true
  app-wan:
  caddy:
    external: true
name: the-box-postgres
services:
  postgres:
    image: supabase/postgres:17.9.0.020-orioledb
    volumes:
      - postgres:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    networks:
      - app
      - caddy
    restart: unless-stopped
    healthcheck:
      test: [ "CMD-SHELL", "pg_isready -U postgres -d postgres" ]
      interval: 10s
      retries: 5
      start_period: 30s
      timeout: 10s
    labels:
      - "caddy=pg.${HOSTNAME:-localhost}"
      - "caddy.respond=OK"
      - 'caddy_1.servers.listener_wrappers.0_layer4.@pg_tls.postgres.tls=enabled'
      - 'caddy_1.servers.listener_wrappers.0_layer4.route_0=@pg_tls'
      - 'caddy_1.servers.listener_wrappers.0_layer4.route_0.0_postgres_tls='
      - 'caddy_1.servers.listener_wrappers.0_layer4.route_0.1_tls.connection_policy.alpn=postgresql'
      - 'caddy_1.servers.listener_wrappers.0_layer4.route_0.2_proxy={{upstreams 5432}}'
      - 'caddy_1.servers.listener_wrappers.1_tls='
  web:
    depends_on:
      - postgres
    environment:
      DATABASE_URL: postgresql://postgres:${POSTGRES_PASSWORD}@postgres/postgres
volumes:
  postgres:

Docker commands

docker compose -f oci://codingjoe/the-box-postgres:main up

Use the above command to pull and run the Compose file. Learn more⁠.

Images used

Image

Tiny Go webserver that prints OS information and HTTP request to output


Pulls

10M+

Stars

72

Last Updated

2 months

Image

Unmodified Postgres with some useful plugins.


Pulls

10M+

Stars

80

Last Updated

about 9 hours