fleet/tools/osquery/in-a-box/docker-compose.yml
Ian Littman dfaad610d9
Remove unneeded exposed ports on osquery-in-a-box minio to avoid host-port conflicts (#30416)
Also ensures we run integration tests when docker-compose files used by
`fleetctl preview` are changed, so we don't merge any more test failures
due to those.
2025-06-29 12:40:17 -05:00

148 lines
5.1 KiB
YAML

volumes:
data01:
driver: local
data-minio:
networks:
fleet-preview:
name: fleet-preview
services:
mysql01:
image: mysql:8.0.36
platform: linux/x86_64
volumes:
- .:/data
command: mysqld --datadir=/tmp/data --event-scheduler=ON
environment:
MYSQL_ROOT_PASSWORD: toor
MYSQL_DATABASE: fleet
MYSQL_USER: fleet
MYSQL_PASSWORD: fleet
ports:
- "3308:3306"
networks:
- fleet-preview
redis01:
image: redis:6
networks:
- fleet-preview
# Normal Fleet server running TLS with a self-signed cert to handle the
# osquery connections.
fleet01:
image: fleetdm/fleet:${FLEET_VERSION:-latest}
platform: linux/x86_64
command: sh -c "/usr/bin/fleet prepare db --no-prompt && /usr/bin/fleet serve"
environment:
FLEET_S3_SOFTWARE_INSTALLERS_BUCKET: software-installers-preview
FLEET_S3_SOFTWARE_INSTALLERS_ACCESS_KEY_ID: minio
FLEET_S3_SOFTWARE_INSTALLERS_SECRET_ACCESS_KEY: minio123!
FLEET_S3_SOFTWARE_INSTALLERS_ENDPOINT_URL: http://minio:9000
FLEET_S3_SOFTWARE_INSTALLERS_REGION: minio
FLEET_S3_SOFTWARE_INSTALLERS_DISABLE_SSL: true
FLEET_S3_SOFTWARE_INSTALLERS_FORCE_S3_PATH_STYLE: true
FLEET_MYSQL_ADDRESS: mysql01:3306
FLEET_MYSQL_DATABASE: fleet
FLEET_MYSQL_USERNAME: fleet
FLEET_MYSQL_PASSWORD: fleet
FLEET_REDIS_ADDRESS: redis01:6379
FLEET_SERVER_ADDRESS: 0.0.0.0:8412
FLEET_SERVER_CERT: /fleet/osquery/fleet.crt
FLEET_SERVER_KEY: /fleet/osquery/fleet.key
FLEET_LOGGING_JSON: 'true'
FLEET_OSQUERY_STATUS_LOG_PLUGIN: filesystem
FLEET_FILESYSTEM_STATUS_LOG_FILE: /logs/osqueryd.status.log
FLEET_OSQUERY_RESULT_LOG_PLUGIN: filesystem
FLEET_FILESYSTEM_RESULT_LOG_FILE: /logs/osqueryd.results.log
FLEET_BETA_SOFTWARE_INVENTORY: 1
FLEET_LICENSE_KEY: ${FLEET_LICENSE_KEY}
FLEET_OSQUERY_LABEL_UPDATE_INTERVAL: 1m
FLEET_VULNERABILITIES_CURRENT_INSTANCE_CHECKS: "yes"
FLEET_VULNERABILITIES_DATABASES_PATH: /vulndb
FLEET_VULNERABILITIES_PERIODICITY: 5m
FLEET_LOGGING_DEBUG: 'true'
FLEET_SERVER_PRIVATE_KEY: ${FLEET_SERVER_PRIVATE_KEY}
# This can be configured for testing purposes but otherwise uses the
# typical default of provided.
FLEET_OSQUERY_HOST_IDENTIFIER: ${FLEET_OSQUERY_HOST_IDENTIFIER:-provided}
depends_on:
- mysql01
- redis01
- minio
volumes:
- .:/fleet/
- ./logs:/logs
- ./vulndb:/vulndb
- ./config:/config
ports:
- "8412:8412"
networks:
fleet-preview:
aliases:
# Kind of a funny hack, this allows host.docker.internal to point
# to the Fleet server on Linux hosts where host.docker.internal is not
# yet added as a host by default in Docker.
- host.docker.internal
# Another strange hack, this allows the UI Fleet server to see
# this server as though it were on localhost, thereby allowing it to
# download the TLS certificate.
- localhost
# Run another Fleet server listening over plain HTTP bound to port 1337.
# This is expected to receive UI requests only and not connections from
# agents.
fleet02:
image: fleetdm/fleet:${FLEET_VERSION:-latest}
platform: linux/x86_64
command: sh -c "/usr/bin/fleet prepare db --no-prompt && /usr/bin/fleet serve"
environment:
FLEET_S3_SOFTWARE_INSTALLERS_BUCKET: software-installers-preview
FLEET_S3_SOFTWARE_INSTALLERS_ACCESS_KEY_ID: minio
FLEET_S3_SOFTWARE_INSTALLERS_SECRET_ACCESS_KEY: minio123!
FLEET_S3_SOFTWARE_INSTALLERS_ENDPOINT_URL: http://minio:9000
FLEET_S3_SOFTWARE_INSTALLERS_REGION: minio
FLEET_S3_SOFTWARE_INSTALLERS_DISABLE_SSL: true
FLEET_S3_SOFTWARE_INSTALLERS_FORCE_S3_PATH_STYLE: true
FLEET_MYSQL_ADDRESS: mysql01:3306
FLEET_MYSQL_DATABASE: fleet
FLEET_MYSQL_USERNAME: fleet
FLEET_MYSQL_PASSWORD: fleet
FLEET_REDIS_ADDRESS: redis01:6379
FLEET_SERVER_ADDRESS: 0.0.0.0:1337
FLEET_SERVER_TLS: "false"
FLEET_LOGGING_JSON: "true"
FLEET_SESSION_DURATION: 720h
FLEET_OSQUERY_STATUS_LOG_PLUGIN: stdout
FLEET_OSQUERY_RESULT_LOG_PLUGIN: stdout
FLEET_BETA_SOFTWARE_INVENTORY: 1
FLEET_LICENSE_KEY: ${FLEET_LICENSE_KEY}
FLEET_OSQUERY_LABEL_UPDATE_INTERVAL: 1m
FLEET_VULNERABILITIES_CURRENT_INSTANCE_CHECKS: "no"
FLEET_SERVER_PRIVATE_KEY: ${FLEET_SERVER_PRIVATE_KEY}
# This can be configured for testing purposes but otherwise uses the
# typical default of provided.
FLEET_OSQUERY_HOST_IDENTIFIER: ${FLEET_OSQUERY_HOST_IDENTIFIER:-provided}
depends_on:
- mysql01
- redis01
- minio
volumes:
- ./config:/config
ports:
- "1337:1337"
networks:
- fleet-preview
minio:
image: quay.io/minio/minio
entrypoint: sh
command: -c 'mkdir -p /data/software-installers-preview && /usr/bin/minio server /data --console-address ":9001"'
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: minio123!
volumes:
- data-minio:/data
networks:
- fleet-preview