-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
121 lines (118 loc) · 4.7 KB
/
Copy pathdocker-compose.yml
File metadata and controls
121 lines (118 loc) · 4.7 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
services:
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: "${SCANOPS_DB_NAME:-db_scanops}"
POSTGRES_USER: "${SCANOPS_DB_USER:-scanops}"
POSTGRES_PASSWORD: "${SCANOPS_DB_PASSWORD:-scanops_dev_password}"
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- scanops_postgres_data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${SCANOPS_DB_USER:-scanops} -d ${SCANOPS_DB_NAME:-db_scanops} >/dev/null || exit 1"]
interval: 10s
timeout: 5s
retries: 10
start_period: 20s
scanops-web:
build:
context: .
dockerfile: Dockerfile
env_file:
- .env
depends_on:
db:
condition: service_healthy
environment:
JTRO_ENVIRONMENT: "${JTRO_ENVIRONMENT:-dev}"
JTRO_DEBUG: "${JTRO_DEBUG:-True}"
JTRO_SECRET_KEY: "${JTRO_SECRET_KEY:-scanops-dev-secret-key-change-me}"
JTRO_SSL_ENABLED: "${JTRO_SSL_ENABLED:-False}"
JTRO_ALLOWED_HOSTS: "${JTRO_ALLOWED_HOSTS:-localhost,127.0.0.1,0.0.0.0}"
JTRO_CSRF_TRUSTED_ORIGINS: "${JTRO_CSRF_TRUSTED_ORIGINS:-}"
JTRO_DEV_DATABASE: "postgres"
JTRO_DEV_DATABASE_ENGINE: "django.db.backends.postgresql"
JTRO_DEV_DATABASE_NAME: "${SCANOPS_DB_NAME:-db_scanops}"
JTRO_DEV_DATABASE_USER: "${SCANOPS_DB_USER:-scanops}"
JTRO_DEV_DATABASE_PASSWORD: "${SCANOPS_DB_PASSWORD:-scanops_dev_password}"
JTRO_DEV_DATABASE_HOST: "db"
JTRO_DEV_DATABASE_PORT: "${SCANOPS_DB_PORT:-5432}"
JTRO_DATABASE_ENGINE: "django.db.backends.postgresql"
JTRO_DATABASE_NAME: "${SCANOPS_DB_NAME:-db_scanops}"
JTRO_DATABASE_USER: "${SCANOPS_DB_USER:-scanops}"
JTRO_DATABASE_PASSWORD: "${SCANOPS_DB_PASSWORD:-scanops_dev_password}"
JTRO_DATABASE_HOST: "db"
JTRO_DATABASE_PORT: "${SCANOPS_DB_PORT:-5432}"
EMAIL_BACKEND: "${EMAIL_BACKEND:-django.core.mail.backends.console.EmailBackend}"
EMAIL_HOST: "${EMAIL_HOST:-}"
EMAIL_PORT: "${EMAIL_PORT:-587}"
EMAIL_USE_TLS: "${EMAIL_USE_TLS:-True}"
EMAIL_HOST_USER: "${EMAIL_HOST_USER:-}"
EMAIL_HOST_PASSWORD: "${EMAIL_HOST_PASSWORD:-}"
DEFAULT_FROM_EMAIL: "${DEFAULT_FROM_EMAIL:-webmaster@localhost}"
SCANOPS_SELF_REGISTRATION_ENABLED: "${SCANOPS_SELF_REGISTRATION_ENABLED:-True}"
SCANOPS_SELF_REGISTRATION_REQUIRES_APPROVAL: "${SCANOPS_SELF_REGISTRATION_REQUIRES_APPROVAL:-False}"
SCANOPS_SELF_REGISTRATION_DEFAULT_ROLE: "${SCANOPS_SELF_REGISTRATION_DEFAULT_ROLE:-viewer}"
GUNICORN_WORKERS: "${GUNICORN_WORKERS:-3}"
ports:
- "${SCANOPS_PORT:-8008}:8008"
volumes:
- scanops_static:/app/static_root
- scanops_media:/app/media_root
- scanops_logs:/app/app_logs
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:8008/login/ >/dev/null || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 45s
scanops-worker:
build:
context: .
dockerfile: Dockerfile
env_file:
- .env
depends_on:
db:
condition: service_healthy
environment:
JTRO_ENVIRONMENT: "${JTRO_ENVIRONMENT:-dev}"
JTRO_DEBUG: "${JTRO_DEBUG:-True}"
JTRO_SECRET_KEY: "${JTRO_SECRET_KEY:-scanops-dev-secret-key-change-me}"
JTRO_SSL_ENABLED: "${JTRO_SSL_ENABLED:-False}"
JTRO_ALLOWED_HOSTS: "${JTRO_ALLOWED_HOSTS:-localhost,127.0.0.1,0.0.0.0}"
JTRO_CSRF_TRUSTED_ORIGINS: "${JTRO_CSRF_TRUSTED_ORIGINS:-}"
JTRO_DEV_DATABASE: "postgres"
JTRO_DEV_DATABASE_ENGINE: "django.db.backends.postgresql"
JTRO_DEV_DATABASE_NAME: "${SCANOPS_DB_NAME:-db_scanops}"
JTRO_DEV_DATABASE_USER: "${SCANOPS_DB_USER:-scanops}"
JTRO_DEV_DATABASE_PASSWORD: "${SCANOPS_DB_PASSWORD:-scanops_dev_password}"
JTRO_DEV_DATABASE_HOST: "db"
JTRO_DEV_DATABASE_PORT: "${SCANOPS_DB_PORT:-5432}"
JTRO_DATABASE_ENGINE: "django.db.backends.postgresql"
JTRO_DATABASE_NAME: "${SCANOPS_DB_NAME:-db_scanops}"
JTRO_DATABASE_USER: "${SCANOPS_DB_USER:-scanops}"
JTRO_DATABASE_PASSWORD: "${SCANOPS_DB_PASSWORD:-scanops_dev_password}"
JTRO_DATABASE_HOST: "db"
JTRO_DATABASE_PORT: "${SCANOPS_DB_PORT:-5432}"
SCANOPS_SCAN_WORKER_NAME: "scanops-worker-01"
command:
- sh
- -c
- >
while true; do
python manage.py process_scan_queue --limit 1 --include-running --resume-stale-after-seconds 900 --worker-name "$${SCANOPS_SCAN_WORKER_NAME}";
sleep 2;
done
volumes:
- scanops_static:/app/static_root
- scanops_media:/app/media_root
- scanops_logs:/app/app_logs
restart: unless-stopped
volumes:
scanops_postgres_data:
scanops_static:
scanops_media:
scanops_logs: