Sign inSign up

codingjoe/the-box-postgres:main

Manifest digest

sha256:e68ef257efe32841ef721d391c47907168815374d0f4c42b467c216541ace848

Last pushed

18 days 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

about 2 months

Image

Unmodified Postgres with some useful plugins.


Pulls

10M+

Stars

78

Last Updated

4 days