1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
services:
truss:
build: .
ports:
- "8080:8080"
environment:
- TRUSS_BEARER_TOKEN=changeme
- TRUSS_STORAGE_ROOT=/data
- TRUSS_BIND_ADDR=0.0.0.0:8080
# - TRUSS_MAX_CONCURRENT_TRANSFORMS=64
# - TRUSS_TRANSFORM_DEADLINE_SECS=30
volumes:
- ./images:/data:ro
healthcheck:
test:
interval: 5s
timeout: 3s
retries: 10
read_only: true
security_opt:
- no-new-privileges:true
# ── S3 / MinIO example (uncomment to use) ──
# minio:
# image: minio/minio:latest
# command: ["server", "/data"]
# environment:
# MINIO_ROOT_USER: minioadmin
# MINIO_ROOT_PASSWORD: minioadmin
# healthcheck:
# test: ["CMD", "mc", "ready", "local"]
# interval: 5s
# timeout: 3s
# retries: 10
#
# truss-s3:
# build: .
# ports:
# - "8083:8080"
# environment:
# - TRUSS_BEARER_TOKEN=changeme
# - TRUSS_BIND_ADDR=0.0.0.0:8080
# - TRUSS_STORAGE_BACKEND=s3
# - TRUSS_S3_BUCKET=my-bucket
# - TRUSS_S3_FORCE_PATH_STYLE=true
# - AWS_ACCESS_KEY_ID=minioadmin
# - AWS_SECRET_ACCESS_KEY=minioadmin
# - AWS_REGION=us-east-1
# - AWS_ENDPOINT_URL=http://minio:9000
# read_only: true
# security_opt:
# - no-new-privileges:true
# ── GCS example (uncomment to use) ──
# fake-gcs:
# image: fsouza/fake-gcs-server:latest
# command: ["-scheme", "http", "-port", "4443"]
# healthcheck:
# test: ["CMD", "nc", "-z", "localhost", "4443"]
# interval: 5s
# timeout: 3s
# retries: 10
#
# truss-gcs:
# build: .
# ports:
# - "8081:8080"
# environment:
# - TRUSS_BEARER_TOKEN=changeme
# - TRUSS_BIND_ADDR=0.0.0.0:8080
# - TRUSS_STORAGE_BACKEND=gcs
# - TRUSS_GCS_BUCKET=my-bucket
# - TRUSS_GCS_ENDPOINT=http://fake-gcs:4443
# - GOOGLE_APPLICATION_CREDENTIALS_JSON={}
# read_only: true
# security_opt:
# - no-new-privileges:true
# ── Azure Blob Storage example (uncomment to use) ──
# azurite:
# image: mcr.microsoft.com/azure-storage/azurite:latest
# command: ["azurite-blob", "--blobHost", "0.0.0.0", "--blobPort", "10000"]
# healthcheck:
# test: ["CMD", "nc", "-z", "localhost", "10000"]
# interval: 5s
# timeout: 3s
# retries: 10
#
# truss-azure:
# build: .
# ports:
# - "8082:8080"
# depends_on:
# azurite:
# condition: service_healthy
# environment:
# - TRUSS_BEARER_TOKEN=changeme
# - TRUSS_BIND_ADDR=0.0.0.0:8080
# - TRUSS_STORAGE_BACKEND=azure
# - TRUSS_AZURE_CONTAINER=truss-test
# - TRUSS_AZURE_ENDPOINT=http://azurite:10000/devstoreaccount1
# - AZURE_STORAGE_ACCOUNT_NAME=devstoreaccount1
# read_only: true
# security_opt:
# - no-new-privileges:true