* chore: docker compose dev with local build * chore: docker compose with prebuilt image on ghcr * fix: Update readme and by comments
172 lines
4.3 KiB
YAML
172 lines
4.3 KiB
YAML
# Docker Compose file for setting up Minio, createbuckets, app_cpu, and app_gpu services
|
|
|
|
version: '3.7'
|
|
|
|
services:
|
|
# Minio service for object storage
|
|
minio:
|
|
image: minio/minio
|
|
volumes:
|
|
- minio_data:/data
|
|
ports:
|
|
- '9000:9000'
|
|
- '9001:9001'
|
|
environment:
|
|
# Set the root user and password for Minio
|
|
MINIO_ROOT_USER: minioadmin # This acts as AWS_ACCESS_KEY
|
|
MINIO_ROOT_PASSWORD: minioadmin # This acts as AWS_SECRET_ACCESS_KEY
|
|
command: server --console-address ":9001" /data
|
|
restart: always
|
|
healthcheck:
|
|
test: ['CMD', 'curl', '-f', 'http://localhost:9000/minio/health/live']
|
|
interval: 30s
|
|
timeout: 20s
|
|
retries: 3
|
|
networks:
|
|
vpcbr:
|
|
ipv4_address: 10.5.0.2
|
|
|
|
# createbuckets service to create a bucket and set its policy
|
|
createbuckets:
|
|
image: minio/mc
|
|
depends_on:
|
|
- minio
|
|
entrypoint: >
|
|
/bin/sh -c "
|
|
/usr/bin/mc alias set myminio http://minio:9000 minioadmin minioadmin;
|
|
/usr/bin/mc mb myminio/mybucket;
|
|
/usr/bin/mc policy set public myminio/mybucket;
|
|
exit 0;
|
|
"
|
|
networks:
|
|
vpcbr:
|
|
|
|
# app_cpu service for running the CPU version of the application
|
|
app_cpu_s3fs:
|
|
image: jan:latest
|
|
volumes:
|
|
- app_data_cpu_s3fs:/app/server/build/jan
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
environment:
|
|
# Set the AWS access key, secret access key, bucket name, endpoint, and region for app_cpu
|
|
AWS_ACCESS_KEY_ID: minioadmin
|
|
AWS_SECRET_ACCESS_KEY: minioadmin
|
|
S3_BUCKET_NAME: mybucket
|
|
AWS_ENDPOINT: http://10.5.0.2:9000
|
|
AWS_REGION: us-east-1
|
|
API_BASE_URL: http://localhost:1337
|
|
restart: always
|
|
profiles:
|
|
- cpu-s3fs
|
|
ports:
|
|
- '3000:3000'
|
|
- '1337:1337'
|
|
- '3928:3928'
|
|
networks:
|
|
vpcbr:
|
|
ipv4_address: 10.5.0.3
|
|
|
|
# app_gpu service for running the GPU version of the application
|
|
app_gpu_s3fs:
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: all
|
|
capabilities: [gpu]
|
|
image: jan-gpu:latest
|
|
volumes:
|
|
- app_data_gpu_s3fs:/app/server/build/jan
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.gpu
|
|
restart: always
|
|
environment:
|
|
# Set the AWS access key, secret access key, bucket name, endpoint, and region for app_gpu
|
|
AWS_ACCESS_KEY_ID: minioadmin
|
|
AWS_SECRET_ACCESS_KEY: minioadmin
|
|
S3_BUCKET_NAME: mybucket
|
|
AWS_ENDPOINT: http://10.5.0.2:9000
|
|
AWS_REGION: us-east-1
|
|
API_BASE_URL: http://localhost:1337
|
|
profiles:
|
|
- gpu-s3fs
|
|
ports:
|
|
- '3000:3000'
|
|
- '1337:1337'
|
|
- '3928:3928'
|
|
networks:
|
|
vpcbr:
|
|
ipv4_address: 10.5.0.4
|
|
|
|
app_cpu_fs:
|
|
image: jan:latest
|
|
volumes:
|
|
- app_data_cpu_fs:/app/server/build/jan
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
environment:
|
|
API_BASE_URL: http://localhost:1337
|
|
restart: always
|
|
profiles:
|
|
- cpu-fs
|
|
ports:
|
|
- '3000:3000'
|
|
- '1337:1337'
|
|
- '3928:3928'
|
|
networks:
|
|
vpcbr:
|
|
ipv4_address: 10.5.0.5
|
|
|
|
# app_gpu service for running the GPU version of the application
|
|
app_gpu_fs:
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: all
|
|
capabilities: [gpu]
|
|
image: jan-gpu:latest
|
|
volumes:
|
|
- app_data_gpu_fs:/app/server/build/jan
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.gpu
|
|
restart: always
|
|
environment:
|
|
API_BASE_URL: http://localhost:1337
|
|
profiles:
|
|
- gpu-fs
|
|
ports:
|
|
- '3000:3000'
|
|
- '1337:1337'
|
|
- '3928:3928'
|
|
networks:
|
|
vpcbr:
|
|
ipv4_address: 10.5.0.6
|
|
|
|
volumes:
|
|
minio_data:
|
|
app_data_cpu_s3fs:
|
|
app_data_gpu_s3fs:
|
|
app_data_cpu_fs:
|
|
app_data_gpu_fs:
|
|
|
|
networks:
|
|
vpcbr:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 10.5.0.0/16
|
|
gateway: 10.5.0.1
|
|
# Usage:
|
|
# - Run 'docker compose -f docker-compose-dev.yml --profile cpu-s3fs up -d' to start the app_cpu service
|
|
# - Run 'docker compose -f docker-compose-dev.yml --profile gpu-s3fs up -d' to start the app_gpu service
|
|
# - Run 'docker compose -f docker-compose-dev.yml --profile cpu-fs up -d' to start the app_cpu service
|
|
# - Run 'docker compose -f docker-compose-dev.yml --profile gpu-fs up -d' to start the app_gpu service
|