🐳 isso

a Disqus alternative

Docker Ready 2 Services Ports: 8080 5,282 stars
1. Pull Image docker pull library/isso
2. 1-Click Launch Command docker run -d -p 8080:8080 --name isso isso
3. Compose Deployment docker compose up -d
docker-compose.yml
Download .yml
# 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: