-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.full.yml
134 lines (125 loc) · 3.83 KB
/
docker-compose.full.yml
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
132
133
134
version: '3'
services:
## ###############
## Infra services
## ###############
# MongoDB service, this is used by the cypress services to store data
mongo:
image: mongo:4.4
container_name: mongo
volumes:
- ./data/data-mongo-cypress:/data/db
networks:
- internal
restart: unless-stopped
# Reverse proxy service, this is used to expose the cypress services to the world securely
swag:
image: lscr.io/linuxserver/swag:latest
container_name: swag
cap_add:
- NET_ADMIN
environment:
# Environment setup
- PUID=1000
- PGID=1000
- TZ=Europe/London
# Automatic SSL certificate provisioning
- URL=${PROXY_SERVER_DOMAIN}
- VALIDATION=http
- SUBDOMAINS=${PROXY_DIRECTOR_SUBDOMAIN},${PROXY_API_SUBDOMAIN},${PROXY_DASHBOARD_SUBDOMAIN}
- ONLY_SUBDOMAINS=true
volumes:
- ./swag:/config
ports:
- 443:443
- 80:80
depends_on:
- director
- api
- dashboard
networks:
- internal
- external
restart: unless-stopped
# Minio video storage
minio:
image: minio/minio
container_name: minio
ports:
- "9000:9000"
environment:
- MINIO_ROOT_USER=${MINIO_ACCESS_KEY}
- MINIO_ROOT_PASSWORD=${MINIO_SECRET_KEY}
volumes:
- ./data/minio_data:/data
command: server /data
## ###############
## Cypress services
## ###############
# 1️⃣ Cypress director (required)
# Coordinates & parallelizes tests, saves test results, this is the container that the cypress test runner connects to
# This is the only **required** service to run parallel tests, see: https://docs.sorry-cypress.dev/configuration/in-memory
director:
image: agoldis/sorry-cypress-director:latest
container_name: sorry-cypress-director
environment:
DASHBOARD_URL: https://${PROXY_DASHBOARD_SUBDOMAIN}.${PROXY_SERVER_DOMAIN}
MONGODB_URI: 'mongodb://mongo:27017'
MONGODB_DATABASE: 'sorry-cypress'
EXECUTION_DRIVER: '../execution/mongo/driver'
SCREENSHOTS_DRIVER: '../screenshots/s3.driver'
GITLAB_JOB_RETRIES: 'false'
S3_ENDPOINT: http://minio:9000
S3_ACCESS_KEY_ID: ${MINIO_ACCESS_KEY}
S3_SECRET_ACCESS_KEY: ${MINIO_SECRET_KEY}
S3_BUCKET_NAME: sorry-cypress
#S3_REGION: us-east-1
PROBE_LOGGER: "false"
ports:
- 1234:1234
networks:
- internal
depends_on:
- mongo
- minio
restart: unless-stopped
# 2️⃣ Cypress API service (optional)
# The service is only required as an interface for the Web Dashboard
api:
image: agoldis/sorry-cypress-api:latest
container_name: sorry-cypress-api
environment:
MONGODB_URI: 'mongodb://mongo:27017'
MONGODB_DATABASE: 'sorry-cypress'
APOLLO_PLAYGROUND: 'false'
ports:
- 4000:4000
networks:
- internal
depends_on:
- mongo
restart: unless-stopped
# 3️⃣ Cypress dashboard (optional)
# The dashboard allows end-users to interact with sorry-cypress using a browser
dashboard:
image: agoldis/sorry-cypress-dashboard:latest
container_name: sorry-cypress-dashboard
environment:
GRAPHQL_SCHEMA_URL: https://${PROXY_API_SUBDOMAIN}.${PROXY_SERVER_DOMAIN}
GRAPHQL_CLIENT_CREDENTIALS: ''
CI_URL: ''
# Base path as used in /swag/nginx/proxy-confs/sorry-cypress.subdomain.conf
# see source: https://github.com/sorry-cypress/sorry-cypress/blob/master/packages/dashboard/server/config.js
# see source: https://github.com/sorry-cypress/sorry-cypress/blob/master/packages/dashboard/server/app.js
BASE_PATH: '/'
PORT: 8080
ports:
- 8080:8080
depends_on:
- mongo
- api
- minio
networks:
- internal
- external # note that the dashboard requires this to make calls from the frontend
restart: unless-stopped