mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-09-21 18:39:05 +02:00
49 lines
2.1 KiB
YAML
49 lines
2.1 KiB
YAML
# This Docker Compose file is used to set up the environment for the tests.
|
|
# It's the variant where Pocket ID does not embed the Francis actor runtime, but connects to a standalone one instead.
|
|
services:
|
|
lldap:
|
|
extends:
|
|
file: docker-compose.yml
|
|
service: lldap
|
|
scim-test-server:
|
|
extends:
|
|
file: docker-compose.yml
|
|
service: scim-test-server
|
|
francis-runtime:
|
|
# The version comes from the Francis dependency in backend/go.mod, so the runtime always matches the client Pocket ID is built with
|
|
# Set it with: echo "FRANCIS_VERSION=$(./francis-version.sh)" > .env
|
|
image: ghcr.io/italypaleale/francis:${FRANCIS_VERSION:?run ./francis-version.sh to set it, see CONTRIBUTING.md}
|
|
volumes:
|
|
- ./francis-config.yaml:/etc/francis/config.yaml:ro
|
|
# The image ships its own HEALTHCHECK, which probes the runtime over the loopback
|
|
# It's repeated here so Pocket ID can wait on it, and so a runtime that never comes up fails fast instead of after the default retries
|
|
healthcheck:
|
|
test: ["CMD", "/bin/francis", "healthcheck"]
|
|
interval: 2s
|
|
timeout: 5s
|
|
retries: 15
|
|
start_period: 5s
|
|
pocket-id:
|
|
extends:
|
|
file: docker-compose.yml
|
|
service: pocket-id
|
|
environment:
|
|
APP_ENV: test
|
|
ENCRYPTION_KEY: test-encryption-key
|
|
FILE_BACKEND: ${FILE_BACKEND}
|
|
# The runtime's port is UDP, since WebTransport runs over HTTP/3
|
|
FRANCIS_HOST: francis-runtime:7400
|
|
# Must match "bootstrap.hostPSK" in francis-config.yaml
|
|
FRANCIS_HOST_PSK: e2e-host-bootstrap-psk-0123456789
|
|
# FRANCIS_CA is intentionally unset, so this exercises the same trust-on-first-use path an operator gets without it
|
|
# The cluster only exists inside this Compose network for the duration of the tests
|
|
#
|
|
# Peers reach actors placed on this host at ACTORS_HOST, which the runtime hands out, so it has to be the address other containers resolve rather than the default wildcard
|
|
ACTORS_HOST: pocket-id
|
|
depends_on:
|
|
francis-runtime:
|
|
condition: service_healthy
|
|
|
|
volumes:
|
|
pocket-id-test-data:
|