| services: |
| apisix: |
| container_name: apisix.example.com |
| image: linagora/apisix:3.2.0-debian-javaplugin |
| volumes: |
| - ./apisix/conf/apisix.yaml:/usr/local/apisix/conf/apisix.yaml |
| - ./apisix/conf/config.yaml:/usr/local/apisix/conf/config.yaml |
| environment: |
| X_USER_SECRET: xusersecret123 |
| networks: |
| - james |
| ports: |
| - "127.0.0.1:9080:9080" |
| |
| james: |
| depends_on: |
| - ldap |
| networks: |
| - james |
| image: apache/james:memory-latest |
| container_name: james.example.com |
| hostname: james.example.com |
| command: [--generate-keystore] |
| volumes: |
| - ./james/usersrepository.xml:/root/conf/usersrepository.xml |
| - ./james/jmap.properties:/root/conf/jmap.properties |
| - ./james/imapserver.xml:/root/conf/imapserver.xml |
| - ./james/smtpserver.xml:/root/conf/smtpserver.xml |
| - ./james/managesieveserver.xml:/root/conf/managesieveserver.xml |
| ports: |
| - "127.0.0.1:8000:8000" |
| - "127.0.0.1:143:143" |
| - "127.0.0.1:587:587" |
| - "127.0.0.1:4190:4190" |
| healthcheck: |
| test: ["CMD", "curl", "-f", "http://james:8000/domains"] |
| |
| sso: |
| depends_on: |
| - ldap |
| image: quay.io/keycloak/keycloak:16.1.0 |
| container_name: sso.example.com |
| volumes: |
| - ./keycloak/realm-oidc.json:/tmp/realm-oidc.json |
| ports: |
| - "127.0.0.1:8080:8080" |
| environment: |
| KEYCLOAK_USER: admin |
| KEYCLOAK_PASSWORD: admin |
| KEYCLOAK_IMPORT: /tmp/realm-oidc.json |
| networks: |
| - james |
| |
| ldap: |
| container_name: ldap.example.com |
| image: osixia/openldap:1.5.0 |
| ports: |
| - "127.0.0.1:389:389" |
| - "127.0.0.1:636:636" |
| command: [--copy-service] |
| volumes: |
| - ./ldap/populate.ldif:/container/service/slapd/assets/config/bootstrap/ldif/data.ldif |
| environment: |
| LDAP_DOMAIN: localhost |
| networks: |
| - james |
| |
| redis: |
| container_name: redis.example.com |
| image: redis:8.2.1-bookworm |
| command: ["redis-server", "--requirepass", "secret1"] |
| networks: |
| - james |
| ports: |
| - "127.0.0.1:6379:6379" |
| |
| networks: |
| james: |