All checks were successful
linter / quality (pull_request) Successful in 1m45s
security / Dependency Audit (pull_request) Successful in 1m21s
security / Static Analysis (pull_request) Successful in 2m11s
tests / ci (8.4) (pull_request) Successful in 1m27s
tests / ci (8.5) (pull_request) Successful in 2m21s
The osixia/openldap image only runs bootstrap LDIF when the database is empty. Named volumes (sail-ldap-data, sail-ldap-config) caused changes to bootstrap.ldif to be ignored after the first run. Removing these volumes ensures the test LDAP directory is always seeded fresh from the bootstrap file on each sail up.
137 lines
4.2 KiB
YAML
137 lines
4.2 KiB
YAML
services:
|
|
laravel.test:
|
|
build:
|
|
context: './vendor/laravel/sail/runtimes/8.5'
|
|
dockerfile: Dockerfile
|
|
args:
|
|
WWWGROUP: '${WWWGROUP}'
|
|
image: 'sail-8.5/app'
|
|
extra_hosts:
|
|
- 'host.docker.internal:host-gateway'
|
|
ports:
|
|
- '${APP_PORT:-80}:80'
|
|
- '${VITE_PORT:-5173}:${VITE_PORT:-5173}'
|
|
environment:
|
|
WWWUSER: '${WWWUSER}'
|
|
LARAVEL_SAIL: 1
|
|
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
|
|
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
|
|
IGNITION_LOCAL_SITES_PATH: '${PWD}'
|
|
volumes:
|
|
- '.:/var/www/html'
|
|
networks:
|
|
- sail
|
|
depends_on:
|
|
- mysql
|
|
- redis
|
|
- selenium
|
|
- mailpit
|
|
- openldap
|
|
mysql:
|
|
image: 'mysql:8.4'
|
|
ports:
|
|
- '${FORWARD_DB_PORT:-3306}:3306'
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
|
|
MYSQL_ROOT_HOST: '%'
|
|
MYSQL_DATABASE: '${DB_DATABASE}'
|
|
MYSQL_USER: '${DB_USERNAME}'
|
|
MYSQL_PASSWORD: '${DB_PASSWORD}'
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: 1
|
|
MYSQL_EXTRA_OPTIONS: '${MYSQL_EXTRA_OPTIONS:-}'
|
|
volumes:
|
|
- 'sail-mysql:/var/lib/mysql'
|
|
- './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh'
|
|
networks:
|
|
- sail
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- mysqladmin
|
|
- ping
|
|
- '-p${DB_PASSWORD}'
|
|
retries: 3
|
|
timeout: 5s
|
|
redis:
|
|
image: 'redis:alpine'
|
|
ports:
|
|
- '${FORWARD_REDIS_PORT:-6379}:6379'
|
|
volumes:
|
|
- 'sail-redis:/data'
|
|
networks:
|
|
- sail
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- redis-cli
|
|
- ping
|
|
retries: 3
|
|
timeout: 5s
|
|
selenium:
|
|
image: selenium/standalone-chromium
|
|
extra_hosts:
|
|
- 'host.docker.internal:host-gateway'
|
|
volumes:
|
|
- '/dev/shm:/dev/shm'
|
|
networks:
|
|
- sail
|
|
mailpit:
|
|
image: 'axllent/mailpit:latest'
|
|
ports:
|
|
- '${FORWARD_MAILPIT_PORT:-1025}:1025'
|
|
- '${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025'
|
|
networks:
|
|
- sail
|
|
openldap:
|
|
image: 'osixia/openldap:1.5.0'
|
|
command: '--copy-service'
|
|
ports:
|
|
- '${FORWARD_LDAP_PORT:-389}:389'
|
|
- '${FORWARD_LDAPS_PORT:-636}:636'
|
|
environment:
|
|
LDAP_ORGANISATION: '${LDAP_ORGANISATION:-Travel App}'
|
|
LDAP_DOMAIN: '${LDAP_DOMAIN:-travel.local}'
|
|
LDAP_ADMIN_PASSWORD: '${LDAP_ADMIN_PASSWORD:-adminpassword}'
|
|
LDAP_CONFIG_PASSWORD: '${LDAP_CONFIG_PASSWORD:-configpassword}'
|
|
LDAP_READONLY_USER: 'true'
|
|
LDAP_READONLY_USER_USERNAME: '${LDAP_READONLY_USERNAME:-readonly}'
|
|
LDAP_READONLY_USER_PASSWORD: '${LDAP_READONLY_PASSWORD:-readonly}'
|
|
volumes:
|
|
- './docker/openldap/bootstrap.ldif:/container/service/slapd/assets/config/bootstrap/ldif/custom/bootstrap.ldif'
|
|
networks:
|
|
- sail
|
|
healthcheck:
|
|
test:
|
|
- CMD
|
|
- ldapsearch
|
|
- '-x'
|
|
- '-H'
|
|
- 'ldap://localhost'
|
|
- '-b'
|
|
- 'dc=travel,dc=local'
|
|
- '-D'
|
|
- 'cn=admin,dc=travel,dc=local'
|
|
- '-w'
|
|
- '${LDAP_ADMIN_PASSWORD:-adminpassword}'
|
|
retries: 3
|
|
timeout: 5s
|
|
phpldapadmin:
|
|
image: 'osixia/phpldapadmin:latest'
|
|
ports:
|
|
- '${FORWARD_PHPLDAPADMIN_PORT:-8085}:80'
|
|
environment:
|
|
PHPLDAPADMIN_LDAP_HOSTS: openldap
|
|
PHPLDAPADMIN_HTTPS: 'false'
|
|
networks:
|
|
- sail
|
|
depends_on:
|
|
- openldap
|
|
networks:
|
|
sail:
|
|
driver: bridge
|
|
volumes:
|
|
sail-mysql:
|
|
driver: local
|
|
sail-redis:
|
|
driver: local
|