oneuptime/docker-compose.ci.yml
2022-05-22 12:38:15 +01:00

389 lines
9.2 KiB
YAML

# This docker file is for CI.
# It it builds and tests docker containers in the CI pipeline.
version: '3.7'
x-common-variables: &common-variables
IS_SAAS_SERVICE: ${IS_SAAS_SERVICE}
services:
postgres:
image: postgres:latest
restart: always
env_file:
- ./Postgres/.env
ports:
- '5400:5432'
volumes:
- postgres:/var/lib/postgresql/data
saml:
image: kenchan0130/simplesamlphp
ports:
- 9876:8080
- 8443:8443
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./SAML/.env
volumes:
- ./saml/users.php:/var/www/simplesamlphp/config/authsources.php
redis:
image: redis:5.0.7
ports:
- '6379:6379'
command: redis-server
env_file:
- ./Redis/.env
dashboard-api:
ports:
- '3002:3002'
build:
context: .
dockerfile: ./dashboard-api/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./DashboardAPI/.env
environment: *common-variables
depends_on:
- redis
- haraka
- script-runner
identity:
ports:
- '3087:3087'
build:
context: .
dockerfile: ./Identity/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./Identity/.env
environment: *common-variables
depends_on:
- redis
- postgres
- mail
alert:
ports:
- '3088:3088'
build:
context: .
dockerfile: ./Alert/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./Alert/.env
environment: *common-variables
depends_on:
- redis
- postgres
integration:
ports:
- '3089:3089'
build:
context: .
dockerfile: ./Integration/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./Integration/.env
environment: *common-variables
depends_on:
- redis
- postgres
accounts:
ports:
- '3003:3003'
build:
context: .
dockerfile: ./Accounts/Dockerfile
env_file:
- ./Common/.env
- ./CommonUI/.env
- ./Accounts/.env
environment: *common-variables
depends_on:
- identity
dashboard:
ports:
- '3000:3000'
build:
context: .
dockerfile: ./Dashboard/Dockerfile
env_file:
- ./Common/.env
- ./CommonUI/.env
- ./Dashboard/.env
environment: *common-variables
depends_on:
- dashboard-api
- accounts
home:
ports:
- '1444:1444'
env_file:
- ./Common/.env
- ./CommonUI/.env
- ./Home/.env
environment: *common-variables
build:
context: .
dockerfile: ./Home/Dockerfile
status-page:
ports:
- '3006:3006'
build:
context: .
dockerfile: ./status-page/Dockerfile
env_file:
- ./Common/.env
- ./CommonUI/.env
- ./StatusPage/.env
environment: *common-variables
depends_on:
- dashboard-api
- accounts
- dashboard
admin-dashboard:
ports:
- '3100:3100'
build:
context: .
dockerfile: ./AdminDashboard/Dockerfile
env_file:
- ./Common/.env
- ./CommonUI/.env
- ./AdminDashboard/.env
environment: *common-variables
depends_on:
- dashboard-api
- accounts
http-test-server:
ports:
- '3010:3010'
env_file:
- ./Common/.env
- ./CommonUI/.env
- ./HttpTestServer/.env
environment: *common-variables
build:
context: .
dockerfile: ./HttpTestServer/Dockerfile
licensing:
ports:
- '3004:3004'
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./Licensing/.env
environment: *common-variables
build:
context: .
dockerfile: ./Licensing/Dockerfile
data-ingestor:
ports:
- '3200:3200'
build:
context: .
dockerfile: ./DataIngestor/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./DataIngestor/.env
environment: *common-variables
depends_on:
- script-runner
- dashboard-api
- realtime
realtime:
ports:
- '3300:3300'
build:
context: .
dockerfile: ./Realtime/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./Realtime/.env
environment: *common-variables
helmchart:
ports:
- '3423:3423'
build:
context: .
dockerfile: ./HelmChart/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./HelmChart/.env
environment: *common-variables
probe-api:
ports:
- '3400:3400'
build:
context: .
dockerfile: ./ProbeAPI/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./ProbeAPI/.env
environment: *common-variables
probe1:
build:
context: .
dockerfile: ./Probe/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./Probe/.env
environment:
<<: *common-variables
PROBE_NAME: Probe 1
PROBE_KEY: test-key
depends_on:
- dashboard-api
- data-ingestor
probe2:
build:
context: .
dockerfile: ./Probe/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./Probe/.env
environment:
<<: *common-variables
PROBE_NAME: Probe 2
PROBE_KEY: test-key
depends_on:
- dashboard-api
- data-ingestor
api-docs:
ports:
- '1445:1445'
build:
context: .
dockerfile: ./ApiDocs/Dockerfile
env_file:
- ./Common/.env
- ./CommonUI/.env
- ./ApiDocs/.env
environment: *common-variables
haraka:
ports:
- '2525:2525'
build:
context: ./Haraka
args:
PORT: '2525'
env_file:
- ./Haraka/.env
script-runner:
ports:
- '3009:3009'
build:
context: .
dockerfile: ./ScriptRunner/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./ScriptRunner/.env
environment: *common-variables
application-scanner:
ports:
- '3005:3005'
build:
context: .
dockerfile: ./ApplicationScanner/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./ApplicationScanner/.env
environment: *common-variables
depends_on:
- dashboard-api
mail:
ports:
- 3190:3190
build:
context: .
dockerfile: ./Mail/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./Mail/.env
environment: *common-variables
depends_on:
- haraka
- postgres
container-scanner:
ports:
- '3055:3055'
build:
context: .
dockerfile: ./ContainerScanner/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./ContainerScanner/.env
environment: *common-variables
depends_on:
- dashboard-api
lighthouse-runner:
ports:
- '3015:3015'
build:
context: .
dockerfile: ./LighthouseRunner/Dockerfile
env_file:
- ./Common/.env
- ./CommonServer/.env
- ./LighthouseRunner/.env
environment: *common-variables
depends_on:
- dashboard-api
nginx:
depends_on:
- dashboard-api
- home
- dashboard
- accounts
- admin-dashboard
restart: always
build:
dockerfile: Dockerfile
context: ./Nginx
ports:
- '80:80'
- '443:443'
volumes:
postgres: