Skip to content

Move local environment to docker compose managed services - #1384

Merged
tobio merged 2 commits into
mainfrom
docker-compose-minimal
Oct 22, 2025
Merged

Move local environment to docker compose managed services#1384
tobio merged 2 commits into
mainfrom
docker-compose-minimal

Conversation

@tobio

@tobio tobio commented Oct 22, 2025

Copy link
Copy Markdown
Member

Fixes #1309

Moves the plain docker run configuration from the Makefile to a Docker compose based setup. The old method was unreliable within Buildkite runners, presumably there's some timing issue there which we could track down, but Compose allows us to define service health dependencies explicitly. Buildkite runs for this branch are available here

The same Make targets continue to work as expected, though we can now much more easily execute acceptance tests variations:

  • Testing TLS terminated Kibana is available via USE_TLS=1 make docker-testacc. The other make targets respect this variable, so bringing up a TLS terminated environment for manual testing is simplified.
  • Testing Elasticsearch bearer tokens is available via make docker-testacc-with-token.

@tobio
tobio requested review from Copilot and nick-benoit October 22, 2025 07:15
@tobio tobio self-assigned this Oct 22, 2025

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR migrates the local development environment from standalone docker run commands to a Docker Compose-based setup, addressing reliability issues in CI/CD pipelines. The migration introduces explicit service health dependencies and supports testing variations including TLS-terminated Kibana and Elasticsearch bearer token authentication.

Key Changes:

  • Replaced manual Docker container orchestration with Docker Compose configurations
  • Added support for TLS testing via USE_TLS=1 environment variable
  • Simplified acceptance test execution through compose profiles

Reviewed Changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
docker-compose.yml New base compose configuration defining elasticsearch, kibana, fleet services and test profiles
docker-compose.tls.yml New TLS variant extending base configuration with certificate generation and HTTPS setup
Makefile Simplified targets to use docker compose commands, removed manual retry/health check logic
.env New environment variables file centralizing configuration for compose services
.buildkite/scripts/update-kibana-client.sh Removed manual sleep wait, relying on compose health checks
internal/elasticsearch/logstash/pipeline_test.go Fixed pipeline ID generation to meet API requirements

Comment thread docker-compose.yml Outdated
Comment thread docker-compose.tls.yml

@nick-benoit nick-benoit left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@tobio
tobio merged commit 574fcd2 into main Oct 22, 2025
54 checks passed
@tobio
tobio deleted the docker-compose-minimal branch October 22, 2025 23:30
tobio added a commit that referenced this pull request Oct 23, 2025
* origin/main:
  Add resource to manage ML anomaly detection jobs (#1329)
  chore(deps): pin alpine/mkcert docker tag to a8f4f5a (#1389)
  Bump version in Makefile (#1388)
  Update changelog for 0.11.19 and 0.12.1 (#1387)
  Security Detection Rule schema validation improvements (#1381)
  Remove connector client generation make task (#1386)
  Fixup changelog link
  Move local environment to docker compose managed services (#1384)
  chore(deps): update golang:1.25.3 docker digest to 8c945d3 (#1385)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Define a Buildkite pipeline to update the Kibana OpenAPI spec

3 participants