version: '3.8'
services:
localstack:
image: localstack/localstack:latest
container_name: mediagit-localstack
ports:
- "4566:4566" - "4571:4571" environment:
- SERVICES=s3
- DEBUG=1
- AWS_DEFAULT_REGION=us-east-1
- AWS_ACCESS_KEY_ID=test
- AWS_SECRET_ACCESS_KEY=test
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4566/_localstack/health"]
interval: 10s
timeout: 5s
retries: 5
networks:
- mediagit-test
azurite:
image: mcr.microsoft.com/azure-storage/azurite:latest
container_name: mediagit-azurite
ports:
- "10000:10000" - "10001:10001" - "10002:10002" environment:
- AZURITE_ACCOUNTS=devstoreaccount1:Eby8vdM09T1+hIvGdd4nJ3TrzLlTAj5KhKb8LQ+d9Cg5pBGG7XXqE6aBb+Ke3Y9T/mW8JW/lWz9FzWXhKW3dYg==
command: "azurite-blob --blobHost 0.0.0.0 --blobPort 10000 --loose --skipApiVersionCheck"
volumes:
- "./azurite_data:/data"
healthcheck:
test: ["CMD", "nc", "-z", "localhost", "10000"]
interval: 10s
timeout: 5s
retries: 5
networks:
- mediagit-test
azurite-init:
image: mcr.microsoft.com/azure-cli:latest
container_name: mediagit-azurite-init
depends_on:
azurite:
condition: service_started
entrypoint: >
/bin/bash -c "
sleep 5;
az storage container create --name test-container --connection-string 'DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM09T1+hIvGdd4nJ3TrzLlTAj5KhKb8LQ+d9Cg5pBGG7XXqE6aBb+Ke3Y9T/mW8JW/lWz9FzWXhKW3dYg==;BlobEndpoint=http://azurite:10000/devstoreaccount1;' || true;
exit 0;
"
networks:
- mediagit-test
gcs-emulator:
image: fsouza/fake-gcs-server:latest
container_name: mediagit-gcs-emulator
ports:
- "4443:4443"
command:
- "-scheme"
- "http"
- "-port"
- "4443"
- "-external-url"
- "http://localhost:4443"
- "-public-host"
- "localhost:4443"
volumes:
- "./gcs_data:/data"
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:4443/storage/v1/b"]
interval: 10s
timeout: 5s
retries: 5
networks:
- mediagit-test
minio:
image: minio/minio:latest
container_name: mediagit-minio
ports:
- "9000:9000" - "9001:9001" environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
MINIO_DOMAIN: localhost
MINIO_REGION_NAME: us-east-1
command: server /data --console-address ":9001"
volumes:
- "./minio_data:/data"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 10s
timeout: 5s
retries: 5
networks:
- mediagit-test
minio-init:
image: minio/mc:latest
container_name: mediagit-minio-init
depends_on:
minio:
condition: service_healthy
entrypoint: >
/bin/sh -c "
/usr/bin/mc alias set myminio http://minio:9000 minioadmin minioadmin;
/usr/bin/mc mb myminio/test-bucket --ignore-existing;
/usr/bin/mc mb myminio/mediagit --ignore-existing;
exit 0;
"
networks:
- mediagit-test
networks:
mediagit-test:
driver: bridge
volumes:
localstack_data:
azurite_data:
gcs_data:
minio_data: