Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
131 lines (121 loc) · 3.35 KB
/
Copy pathdocker-compose.yml
File metadata and controls
131 lines (121 loc) · 3.35 KB
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: scancodeio
x-description: "Full ScanCode.io stack: all services, local image build"
services:
db:
image: docker.io/library/postgres:17.11
env_file:
- docker.env
volumes:
- db_data:/var/lib/postgresql/data/
shm_size: "1gb"
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: docker.io/library/redis:8.10.2-alpine
# Enable redis data persistence using the "Append Only File" with the
# default policy of fsync every second. See https://redis.io/topics/persistence
command: redis-server --appendonly yes --loglevel warning
volumes:
- redis_data:/data
restart: always
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
web:
build:
context: ../scancode.io
command: sh -c "
./manage.py migrate &&
./manage.py collectstatic --no-input --verbosity 0 --clear &&
gunicorn scancodeio.wsgi:application --bind :8000 --timeout 600 \
--workers ${GUNICORN_WORKERS:-8} --worker-tmp-dir /dev/shm"
env_file:
- docker.env
expose:
- 8000
volumes:
- .env:/opt/scancodeio/.env
- /etc/scancodeio/:/etc/scancodeio/
- workspace:/var/scancodeio/workspace/
- static:/var/scancodeio/static/
- healthycode_venv:/opt/healthycode
- atom_root:/atom-root
restart: always
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
worker:
build:
context: ../scancode.io
# Ensure that potential db migrations run first by waiting until "web" is up
command: wait-for-it --strict --timeout=600 web:8000 -- sh -c "
./manage.py rqworker --worker-class scancodeio.worker.ScanCodeIOWorker
--queue-class scancodeio.worker.ScanCodeIOQueue
--verbosity 1"
env_file:
- docker.env
volumes:
- .env:/opt/scancodeio/.env
- /etc/scancodeio/:/etc/scancodeio/
- workspace:/var/scancodeio/workspace/
- healthycode_venv:/opt/healthycode
- atom_root:/atom-root
restart: always
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
web:
condition: service_started
nginx:
image: docker.io/library/nginx:1.31.6-alpine
ports:
- "${NGINX_PUBLISHED_HTTP_PORT:-80}:80"
- "${NGINX_PUBLISHED_HTTPS_PORT:-443}:443"
volumes:
- ./etc/nginx/conf.d/:/etc/nginx/conf.d/
- static:/var/scancodeio/static/
- webroot:/var/www/html/
depends_on:
web:
condition: service_started
restart: always
clamav:
image: docker.io/clamav/clamav:1.5.4_base
volumes:
- clamav_data:/var/lib/clamav
- workspace:/var/scancodeio/workspace/
restart: always
healthycode:
profiles:
- healthycode
image: ghcr.io/aboutcode-org/healthycode:0.2.0
volumes:
- healthycode_venv:/opt/healthycode
restart: "no"
atom:
profiles:
- atom
build:
context: .
dockerfile: atom.Dockerfile
volumes: [atom_root:/atom-root]
restart: "no"
volumes:
db_data:
redis_data:
clamav_data:
static:
workspace:
webroot:
healthycode_venv:
atom_root: