Sign inSign up

nurmukhammad767/docker-compose:1.1.0

Manifest digest

sha256:daf4bef727764242337f8e05eb54d7b9e1ef08e599f734ab151bd063429a2b6a

Last pushed

10 days by nurmukhammad767

Type

Compose

Manifest digest

sha256:daf4bef727764242337f8e05eb54d7b9e1ef08e599f734ab151bd063429a2b6a

Compose file content

services:

  backend:
    image: nurmukhammad767/user-api-backend:latest
    environment:
      DB_HOST: ${DB_HOST}
      DB_PORT: ${DB_PORT}
      DB_NAME: ${DB_NAME}
      DB_USERNAME: ${DB_USERNAME}
      DB_PASSWORD: ${DB_PASSWORD}
      MINIO_ENDPOINT: http://minio:9000
      MINIO_ACCESS_KEY: ${M_USER}
      MINIO_SECRET_KEY: ${M_PASSWORD}
      MINIO_BUCKET: ${MINIO_BUCKET:-uploads}
    
    restart: unless-stopped
    depends_on:
      db:
        condition: "service_healthy"
    
    logging:
      driver: "json-file"
      options:
        max-size: "20m"
        max-file: "4"
        compress: "true"

    mem_limit: 512m
    healthcheck:
      test: ["CMD-SHELL", "bash -c '</dev/tcp/127.0.0.1/8080'"]
      interval: 15s
      timeout: 5s
      retries: 8
      start_period: 120s

    networks:
      - backend_network
      - db_network


  redis:
    image: redis:8.10.1
    networks:
      - backend_network
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping"]
      interval: 30s
      timeout: 15s
      retries: 5
      start_period: 10s
  
  rabbitmq:
    image: rabbitmq:4
    networks:
      - backend_network
    volumes:
      - db_data:/var/lib/rabbitmq
    healthcheck:
      test: ["CMD-SHELL", "rabbitmq-diagnostics -q ping"]
      interval: 30s
      timeout: 15s
      retries: 5
      start_period: 10s
  
  minio:
    image: minio/minio:latest
    environment:
      MINIO_ROOT_USER: ${M_USER}
      MINIO_ROOT_PASSWORD: ${M_PASSWORD}
    
    restart: unless-stopped
    volumes:
      - db_data:/data
    networks:
      - db_network
    command: ["server", "/data", "--console-address", ":9001"] 
    healthcheck:
      test: ["CMD", "mc", "ready", "local"]
      interval: 30s
      timeout: 15s
      retries: 5
      start_period: 10s

  keycloak:
    image: quay.io/keycloak/keycloak:26.1
    environment:
      KC_BOOTSTRAP_ADMIN_USERNAME: ${M_USER}
      KC_BOOTSTRAP_ADMIN_PASSWORD: ${M_PASSWORD}
      KC_HTTP_RELATIVE_PATH: ${KC_RELATIVE_PATH}
    restart: unless-stopped
    networks:
      - backend_network
    command: ["start-dev"]
    healthcheck:
      test: ["CMD-SHELL", "bash -c '</dev/tcp/127.0.0.1/8080'"]
      interval: 30s
      timeout: 15s
      retries: 5
      start_period: 10s
  db:
    image: postgres:16
    environment:
      POSTGRES_DB: ${DB_NAME}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME} -d ${DB_NAME}"]
      interval: 15s
      timeout: 5s
      retries: 5
      start_period: 30s
    
    volumes:
      - db_data:/var/lib/postgresql/data
    networks:
      - db_network

  certbot:
    image: certbot/certbot:v4.2.0
    volumes:
      - certbot_cert:/etc/letsencrypt
      - certbot_challenge:/var/www/certbot
    # entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
    command: certonly --webroot -w /var/www/certbot --force-renewal --email [email protected] -d local.redirects.page --agree-tos -v
    # healthcheck:
    #   test: ["CMD-SHELL", "pgrep -f certbot || exit 1"]
    #   interval: 10s
    #   timeout: 5s
    #   retries: 3
    #   start_period: 5s

  flyway:
    image: nurmukhammad767/costume-migration:1.0.0
    command: -connectRetries=60 migrate
    environment:
      FLYWAY_URL: jdbc:postgresql://${DB_HOST}:5432/${DB_NAME}
      FLYWAY_USER: ${DB_USERNAME}
      FLYWAY_PASSWORD: ${DB_PASSWORD}
      FLYWAY_LOCATIONS: filesystem:/flyway/sql
    depends_on:
      db:
        condition: service_healthy

  nginx:
    image: nurmukhammad767/costume-nginx:1.30.4_no_ssl
    ports:
    - "80:80"
    # - "443:443"
    restart: unless-stopped
    depends_on:
      backend:
        condition: service_healthy
      keycloak:
        condition: service_healthy
      minio:
        condition: service_healthy
      # certbot:
      #   condition: service_healthy
    volumes:
      - certbot_cert:/etc/letsencrypt
      - certbot_challenge:/var/www/certbot
    networks:
      - backend_network
      - db_network

networks:
  backend_network:
  db_network:

volumes:
  db_data:
  certbot_cert:
  certbot_challenge:

Docker commands

docker compose -f oci://nurmukhammad767/docker-compose:1.1.0 up

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

Images used

Image + 1 more

The PostgreSQL object-relational database system provides reliability and data integrity.


Pulls

1B+

Stars

15015

Last Updated

about 12 hours

Image + 1 more

Redis is the world’s fastest data platform for caching, vector search, and NoSQL databases.


Pulls

1B+

Stars

13616

Last Updated

about 13 hours

Image + 1 more

RabbitMQ is an open source multi-protocol messaging broker.


Pulls

1B+

Stars

5370

Last Updated

about 16 hours

Image

Official build of EFF's Certbot tool for obtaining TLS/SSL certificates from Let's Encrypt.


Pulls

100M+

Stars

674

Last Updated

about 14 hours

Image

Open Source Identity and Access Management


Pulls

10M+

Stars

161

Last Updated

about 13 hours

Image


Pulls

663

Stars

0

Last Updated

3 days

Image


Pulls

259

Stars

0

Last Updated

10 days

Image


Pulls

123

Stars

0

Last Updated

10 days