a Disqus alternative

RAW Compose
1. Pull Image docker pull library/isso
2. 1-Click Launch Command docker run -d -p 8080:8080 --name isso isso:latest
3. Compose Deployment docker compose up -d
docker-compose.yml
Download .yml
services:

  # Isso server should always reflect production image
  isso-server:
    image: isso:latest
    container_name: isso-server
    build:
      context: .
      dockerfile: Dockerfile
    # No need to set command/entrypoint, image already provides both
    # For reference:
    #command: /isso/bin/isso run  # standalone
    # Using both ENTRYPOINT and CMD:
    #entrypoint: /isso/bin/gunicorn -b 0.0.0.0:8080 -w 4 --preload --worker-tmp-dir /dev/shm
    #command: isso.run
    environment:
      ISSO_SETTINGS: "/config/isso-dev.cfg"
      ISSO_ENDPOINT: "http://isso-dev.local:8080"
    healthcheck:
      # Double $$ for parsing vars inside CMD: https://stackoverflow.com/a/54989793
      # Debug with 'docker inspect --format "{{json .State.Health }}" isso-server | jq'
      test: wget --no-verbose --tries=1 --spider $$ISSO_ENDPOINT/info || exit 1
      interval: 1s  # time before first check and between subsequent checks
      retries: 10
      start_period: 10s
      timeout: 10s
    # 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 8080 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/  # unused by default isso-dev.cfg
      - 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"
    healthcheck:
      disable: true
    # 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: