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
# 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:
Container Topology & Configured Services
isso-server
Image: isso
Ports: 127.0.0.1:8080:8080
Volumes: ./db:/db/, ./contrib/isso-dev.cfg:/config/isso-dev.cfg
Env Vars: 1 variables
isso-client
Image: isso-js-testbed
Volumes: ./package.json:/src/package.json, ./isso/js/:/src/isso/js/, ./isso/js/tests/screenshots/reference/:/src/isso/js/tests/screenshots/reference/
Env Vars: 1 variables