# https://docs.docker.com/compose/compose-file/compose-file-v3/ version: "3.9" services: # Isso server should always reflect production image isso-server: image: isso container_name: isso-server build: context: . dockerfile: Dockerfile # No need to set entrypoint, image already provides CMD #command: /isso/bin/isso -c /config/isso.cfg run environment: ISSO_SETTINGS: "/config/isso-dev.cfg" healthcheck: test: wget --no-verbose --tries=1 --spider http://localhost:8080/info || exit 1 interval: 5s # short timeout needed during start phase retries: 3 start_period: 5s timeout: 3s # If needed, production docker image can also be exposed to host for # non-docker unit/integration testing ports: - 127.0.0.1:8080:8080 # Expose port 80080 to other containerized services, not to host machine: expose: - 8080 networks: test-net: # Also make available under http://isso-dev.local and localhost: aliases: - isso-dev.local - localhost volumes: - ./db:/db/ - type: bind source: ./contrib/isso-dev.cfg target: /config/isso-dev.cfg read_only: true # Jest and puppeteer end-to-end integration test runner isso-client: image: isso-js-testbed container_name: isso-client build: context: . dockerfile: docker/Dockerfile-js-testbed environment: ISSO_ENDPOINT: "http://isso-dev.local:8080" # Command may also run from outside docker compose, e.g.: # $ docker run isso-js-testbed [mount, networks, ...] npm run test-integration #command: npm run test-integration networks: - test-net # Bind-mounts, see: # https://docs.docker.com/compose/compose-file/compose-file-v3/#long-syntax-3 volumes: - type: bind source: ./package.json target: /src/package.json read_only: true - type: bind source: ./isso/js/ target: /src/isso/js/ read_only: true - type: bind source: ./isso/js/tests/screenshots/reference/ target: /src/isso/js/tests/screenshots/reference/ read_only: false # needed for generating screenshots during e2e tests depends_on: - isso-server networks: test-net: