Files
overleaf-cep/services/web/docker-compose.ci.yml
T
Jakob Ackermann 1a45b909c3 [web] tweak logging for CI containers (#23570)
The default logger is "json-file", which writes json blobs and splits
stdout and stderr. We do not need to split and also can save on extra
serialization overhead in the docker daemon by switching the driver.

- use the cheaper "local" driver for containers that we need logs from
  (test containers), the local driver streams stdout+stderr into a file
- use the no-op "none" driver for support containers that we do need any
  logs from.

GitOrigin-RevId: 55c7cb7c91860e192b6d54354f4550a0ee9a672c
2025-02-13 09:06:30 +00:00

123 lines
3.2 KiB
YAML

version: "2.3"
volumes:
data:
services:
test_unit:
build:
context: ../..
dockerfile: services/web/Dockerfile
image: ci/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER
logging:
driver: local
user: node
command: npm run test:unit:app
working_dir: /overleaf/services/web
env_file: docker-compose.common.env
environment:
BASE_CONFIG:
OVERLEAF_CONFIG:
NODE_ENV: test
NODE_OPTIONS: "--unhandled-rejections=strict"
depends_on:
- mongo
test_acceptance:
build:
context: ../..
dockerfile: services/web/Dockerfile
image: ci/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER
logging:
driver: local
working_dir: /overleaf/services/web
env_file: docker-compose.common.env
environment:
BASE_CONFIG:
OVERLEAF_CONFIG:
extra_hosts:
- 'www.overleaf.test:127.0.0.1'
command: npm run test:acceptance:app
user: root
depends_on:
- redis
- mongo
- saml
- ldap
test_frontend:
build:
context: ../..
dockerfile: services/web/Dockerfile
image: ci/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER
logging:
driver: local
user: node
working_dir: /overleaf/services/web
command: npm run test:frontend
environment:
NODE_OPTIONS: "--unhandled-rejections=strict"
test_frontend_ct:
image: cypress/included:13.13.2
logging:
driver: local
working_dir: /overleaf/services/web
environment:
CYPRESS_SPEC_PATTERN: ${CYPRESS_SPEC_PATTERN:-}
CYPRESS_EXCLUDE_SPEC_PATTERN: ${CYPRESS_EXCLUDE_SPEC_PATTERN:-}
volumes:
- ${CYPRESS_RESULTS:-./cypress/results}:/overleaf/services/web/cypress/results/
- /dev/shm/overleaf:/overleaf
entrypoint: npm
command:
- "run"
- "cypress:run-ct"
tar:
image: ci/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER-webpack
volumes:
- ./:/tmp/build/
command: tar -cf /tmp/build/build.tar public/
user: root
redis:
image: redis
mongo:
image: mongo:6.0.13
logging:
driver: none
command: --replSet overleaf
volumes:
- ./docker/mongodb-init-replica-set.js:/docker-entrypoint-initdb.d/mongodb-init-replica-set.js
environment:
MONGO_INITDB_DATABASE: sharelatex
extra_hosts:
# Required when using the automatic database setup for initializing the
# replica set. This override is not needed when running the setup after
# starting up mongo.
- mongo:127.0.0.1
ldap:
image: rroemhild/test-openldap:1.1
logging:
driver: none
# Workaround large memory allocation (using the max-open-files-limit as socket buffer scale).
# REF: https://github.com/moby/moby/issues/8231#issuecomment-63877553
# REF: https://github.com/moby/moby/issues/8231#issuecomment-63871343
command:
- 'bash'
- '-c'
- 'ulimit -n 1024 && exec bash /run.sh'
saml:
image: us-east1-docker.pkg.dev/overleaf-ops/ol-docker/saml-test
logging:
driver: none
environment:
SAML_BASE_URL_PATH: 'http://saml/simplesaml/'
SAML_TEST_SP_ENTITY_ID: 'overleaf-test-saml'
SAML_TEST_SP_LOCATION: 'http://www.overleaf.test:23000/saml/callback'