sha256:9e1785ead7bcb1b0f285781fe4f4b1b29581d254cf32c577bdb3d3a6bd40e5b5
Last pushed
13 days by amineessadiki
Type
Compose
Manifest digest
sha256:9e1785ead7bcb1b0f285781fe4f4b1b29581d254cf32c577bdb3d3a6bd40e5b5
name: caissemanager
services:
app:
container_name: cm-api
depends_on:
mongo:
condition: service_healthy
required: true
redis:
condition: service_started
required: true
environment:
API_KEY: ci-test-api-key
APP_CONTAINER_NAME: express-app
APP_PORT: "8000"
FLASK_RENDER_URL: http://html-renderer:5000/render
HOSTNAME: 0.0.0.0
JWT_SECRET: ci-test-jwt-secret
MONGO_PASSWORD: securePassword
MONGO_URI: mongodb://dbAdmin:securePassword@mongo:27017/caissemanager?authSource=admin&replicaSet=rs0
MONGO_USERNAME: dbAdmin
NODE_ENV: test
PORT: "8000"
PRINT_URL: http://printing-worker:3000
REDIS_HOST: redis
REDIS_PORT: "6379"
SESSION_SECRET: ci-test-session-secret
SOCKET_PORT: "8001"
expose:
- "8000"
- "8001"
extra_hosts:
- host.docker.internal=host-gateway
healthcheck:
test:
- CMD-SHELL
- curl -f http://localhost:8000/health || exit 1
timeout: 10s
interval: 30s
retries: 4
start_period: 40s
image: amineessadiki/cm-backend-api:c8c1bddaa8a580feab875ff6dc9b76efb503c239
networks:
bridge-network: null
ports:
- mode: ingress
target: 8000
published: "8000"
protocol: tcp
- mode: ingress
target: 8001
published: "8001"
protocol: tcp
restart: always
volumes:
- type: volume
source: api_logs
target: /usr/src/app/logs
volume: {}
- type: volume
source: uploads
target: /usr/src/app/uploads
volume: {}
html-renderer:
container_name: cm-html-renderer
image: amineessadiki/cm-backend-html-renderer:c8c1bddaa8a580feab875ff6dc9b76efb503c239
networks:
bridge-network: null
ports:
- mode: ingress
target: 5000
published: "5000"
protocol: tcp
restart: always
volumes:
- type: volume
source: uploads
target: /app/uploads
read_only: true
volume: {}
mongo:
container_name: cm-mongo
depends_on:
mongo-data-init:
condition: service_completed_successfully
required: true
environment:
MONGO_INITDB_ROOT_PASSWORD: securePassword
MONGO_INITDB_ROOT_USERNAME: dbAdmin
MONGO_PASSWORD: securePassword
MONGO_USERNAME: dbAdmin
healthcheck:
test:
- CMD-SHELL
- mongosh --quiet -u "$$MONGO_USERNAME" -p "$$MONGO_PASSWORD" --authenticationDatabase admin --eval "db.adminCommand('ping')"
timeout: 10s
interval: 10s
retries: 15
start_period: 40s
image: amineessadiki/cm-backend-mongo:c8c1bddaa8a580feab875ff6dc9b76efb503c239
networks:
bridge-network: null
ports:
- mode: ingress
target: 27017
published: "27017"
protocol: tcp
restart: always
ulimits:
nofile:
soft: 64000
hard: 64000
volumes:
- type: volume
source: mongo_data
target: /data/db
volume: {}
mongo-data-init:
command:
- mkdir
- -p
- /host/opt/caissemanager/mongo-data
image: busybox:1.37
network_mode: none
restart: "no"
volumes:
- type: volume
source: host_root
target: /host
volume: {}
printing-worker:
cap_add:
- SYS_RAWIO
container_name: cm-printing-worker
depends_on:
app:
condition: service_started
required: true
html-renderer:
condition: service_started
required: true
redis:
condition: service_started
required: true
device_cgroup_rules:
- c 180:* rmw
environment:
CUSTOMER_PRINTER_FALLBACK: "false"
CUSTOMER_PRINTER_NETWORK_IP: 192.168.1.55
CUSTOMER_PRINTER_NETWORK_PORT: "9100"
CUSTOMER_PRINTER_NETWORK_RETRIES: "2"
CUSTOMER_PRINTER_NETWORK_TIMEOUT: "5000"
CUSTOMER_PRINTER_PRIMARY: network
CUSTOMER_PRINTER_USB_AUTODETECT: "false"
KITCHEN_PRINTER_FALLBACK: "false"
KITCHEN_PRINTER_NETWORK_IP: 192.168.1.55
KITCHEN_PRINTER_NETWORK_PORT: "9100"
KITCHEN_PRINTER_NETWORK_RETRIES: "2"
KITCHEN_PRINTER_NETWORK_TIMEOUT: "5000"
KITCHEN_PRINTER_PRIMARY: network
KITCHEN_PRINTER_USB_AUTODETECT: "false"
PRINTER_LOG_LEVEL: info
PRINTER_POOL_TIMEOUT: "120000"
REDIS_HOST: redis
REDIS_PORT: "6379"
RUN_STARTUP_TESTS: "false"
TEST_PRINTER_IP: 192.168.1.55
USB_READ_TIMEOUT: "10000"
expose:
- "5000"
healthcheck:
test:
- CMD
- node
- -e
- console.log('Worker health check')
timeout: 10s
interval: 30s
retries: 3
start_period: 40s
image: amineessadiki/cm-backend-printing-worker:c8c1bddaa8a580feab875ff6dc9b76efb503c239
networks:
bridge-network: null
restart: always
volumes:
- type: volume
source: persistent-hostPath
target: /dev/bus/usb
volume: {}
redis:
container_name: cm-redis
image: redis:6-alpine
networks:
bridge-network: null
ports:
- mode: ingress
target: 6379
published: "6379"
protocol: tcp
restart: always
networks:
bridge-network:
name: bridge-network
driver: bridge
volumes:
api_logs:
name: caissemanager_api_logs
host_root:
name: caissemanager_host_root
driver_opts:
device: /
o: bind
type: none
mongo_data:
name: caissemanager_mongo_data
driver_opts:
device: /opt/caissemanager/mongo-data
o: bind
type: none
persistent-hostPath:
name: caissemanager_persistent-hostPath
driver_opts:
device: /dev/bus/usb
o: bind
type: none
uploads:
name: caissemanager_uploads
x-common:
networks:
- bridge-network
docker compose -f oci://amineessadiki/caissemanager-backend:c8c1bddaa8a580feab875ff6dc9b76efb503c239 upUse the above command to pull and run the Compose file. Learn more.
Redis is the world’s fastest data platform for caching, vector search, and NoSQL databases.
Pulls
1B+
Stars
13624
Last Updated
13 days