Skip to content

Docker Compose not installed on self-hosted runners even when compose-version is specified #232

@jmpargana

Description

@jmpargana

Description:

When running the action on a self-hosted runner that has Docker installed but does not have Docker Compose, setting compose-version: latest does not trigger installation of Docker Compose as expected. Instead, the action attempts to execute Docker Compose commands using the Docker CLI, which fails with errors such as unknown flag: --short and unknown shorthand flag: 'f' in -f.

Action version: v2.4.1

Platform:

  • Ubuntu (linux-small)
  • macOS
  • Windows

Runner type:

  • Hosted
  • Self-hosted

Tools version:

N/A

Repro steps:
A description with steps to reproduce the issue. If you have a public example or
repository to share, please provide the link.

  1. Call action with docker-compose version flag included
with:
  compose-version: latest
  ...

Expected behavior:

Should install docker compose to run action.

Actual behavior:

Crashes with missing docker-compose instead of installing.

{"exitCode":125,"err":"unknown flag: --short\n\nUsage:  docker [OPTIONS] COMMAND [ARG...]\n\nRun 'docker --help' for more information\n","out":""}

Full runner logs below:

2025-11-28T17:39:16.9838886Z ##[group]Run hoverkraft-tech/compose-action@3846bcd61da338e9eaaf83e7ed0234a12b099b72
2025-11-28T17:39:16.9839327Z with:
2025-11-28T17:39:16.9839561Z   compose-file: ./docker-compose.yml
2025-11-28T17:39:16.9839863Z   services: unit-tests
2025-11-28T17:39:16.9839889Z   compose-version: latest
2025-11-28T17:39:16.9840146Z   up-flags: --exit-code-from unit-tests
2025-11-28T17:39:16.9840587Z   cwd: /home/runner/_work/connect-api/connect-api
2025-11-28T17:39:16.9840925Z   services-log-level: debug
2025-11-28T17:39:16.9841360Z   github-token: ***
2025-11-28T17:39:16.9841608Z ##[endgroup]
2025-11-28T17:39:17.0744292Z Setting up docker compose
2025-11-28T17:39:17.6070271Z ##[error]{"exitCode":125,"err":"unknown flag: --short\n\nUsage:  docker [OPTIONS] COMMAND [ARG...]\n\nRun 'docker --help' for more information\n","out":""}
2025-11-28T17:39:17.6140283Z ##[group]Run actions/upload-artifact@ff15f0306b3f739f7b6fd43fb5d26cd321bd4de5
2025-11-28T17:39:17.6140684Z with:
2025-11-28T17:39:17.6140912Z   name: tests-results
2025-11-28T17:39:17.6141282Z   path: /home/runner/_work/connect-api/connect-api/build/test-results/**/*.xml
2025-11-28T17:39:17.6141682Z   if-no-files-found: warn
2025-11-28T17:39:17.6141950Z   retention-days: 1
2025-11-28T17:39:17.6142206Z   include-hidden-files: false
2025-11-28T17:39:17.6142480Z ##[endgroup]
2025-11-28T17:39:17.6612540Z ##[warning]No files were found with the provided path: /home/runner/_work/connect-api/connect-api/build/test-results/**/*.xml. No artifacts will be uploaded.
2025-11-28T17:39:17.6684344Z ##[group]Run actions/upload-artifact@ff15f0306b3f739f7b6fd43fb5d26cd321bd4de5
2025-11-28T17:39:17.6684753Z with:
2025-11-28T17:39:17.6684976Z   name: coverage
2025-11-28T17:39:17.6685315Z   path: /home/runner/_work/connect-api/connect-api/build/coverage/*.xml
2025-11-28T17:39:17.6685694Z   if-no-files-found: warn
2025-11-28T17:39:17.6685964Z   retention-days: 1
2025-11-28T17:39:17.6686215Z   include-hidden-files: false
2025-11-28T17:39:17.6686487Z ##[endgroup]
2025-11-28T17:39:17.7145287Z ##[warning]No files were found with the provided path: /home/runner/_work/connect-api/connect-api/build/coverage/*.xml. No artifacts will be uploaded.
2025-11-28T17:39:17.7294753Z ##[group]Run ctrf-io/github-test-reporter@9bd31188517cfb3ff683f135041cc3bfbb0c78b3
2025-11-28T17:39:17.7295172Z with:
2025-11-28T17:39:17.7295559Z   report-path: /home/runner/_work/connect-api/connect-api/build/test-results/**/*.xml
2025-11-28T17:39:17.7295988Z   summary-report: true
2025-11-28T17:39:17.7296239Z   test-report: true
2025-11-28T17:39:17.7296468Z   failed-report: true
2025-11-28T17:39:17.7296722Z   skipped-report: true
2025-11-28T17:39:17.7296970Z   insights-report: true
2025-11-28T17:39:17.7297233Z   pull-request-report: true
2025-11-28T17:39:17.7297501Z   title: Test Report: unit
2025-11-28T17:39:17.7297759Z   overwrite-comment: true
2025-11-28T17:39:17.7298186Z   comment-tag: Build and Test-unit
2025-11-28T17:39:17.7298477Z   exit-on-fail: true
2025-11-28T17:39:17.7298723Z   use-suite-name: true
2025-11-28T17:39:17.7298982Z   collapse-large-reports: true
2025-11-28T17:39:17.7299687Z   integrations-config: {
  "junit-to-ctrf": {
    "enabled": true,
    "action": "convert",
    "options": {
      "output": "./ctrf-reports/ctrf-report.json",
      "toolname": "junit-to-ctrf",
      "useSuiteName": true
    }
  }
}

2025-11-28T17:39:17.7300407Z   summary-delta-report: false
2025-11-28T17:39:17.7300676Z   github-report: false
2025-11-28T17:39:17.7300924Z   test-list-report: false
2025-11-28T17:39:17.7301178Z   fail-rate-report: false
2025-11-28T17:39:17.7301423Z   flaky-report: false
2025-11-28T17:39:17.7301680Z   flaky-rate-report: false
2025-11-28T17:39:17.7301951Z   failed-folded-report: false
2025-11-28T17:39:17.7302230Z   previous-results-report: false
2025-11-28T17:39:17.7302505Z   ai-report: false
2025-11-28T17:39:17.7302752Z   suite-folded-report: false
2025-11-28T17:39:17.7303028Z   suite-list-report: false
2025-11-28T17:39:17.7303286Z   file-report: false
2025-11-28T17:39:17.7303530Z   slowest-report: false
2025-11-28T17:39:17.7303783Z   commit-report: false
2025-11-28T17:39:17.7304031Z   custom-report: false
2025-11-28T17:39:17.7304286Z   community-report: false
2025-11-28T17:39:17.7304580Z   summary: true
2025-11-28T17:39:17.7304808Z   pull-request: false
2025-11-28T17:39:17.7305055Z   annotate: true
2025-11-28T17:39:17.7305302Z   status-check: false
2025-11-28T17:39:17.7305705Z   status-check-name: GitHub Test Reporter Results
2025-11-28T17:39:17.7306058Z   community-report-name: summary-short
2025-11-28T17:39:17.7306366Z   on-fail-only: false
2025-11-28T17:39:17.7306633Z   exit-on-no-files: false
2025-11-28T17:39:17.7306891Z   exit-on-empty: false
2025-11-28T17:39:17.7307144Z   update-comment: false
2025-11-28T17:39:17.7307400Z   always-latest-comment: false
2025-11-28T17:39:17.7307676Z   upload-artifact: false
2025-11-28T17:39:17.7307940Z   artifact-name: ctrf-report
2025-11-28T17:39:17.7308210Z   previous-results-max: 10
2025-11-28T17:39:17.7308468Z   fetch-previous-results: false
2025-11-28T17:39:17.7308752Z   max-workflow-runs-to-check: 400
2025-11-28T17:39:17.7309043Z   max-previous-runs-to-fetch: 100
2025-11-28T17:39:17.7309310Z   baseline: 1
2025-11-28T17:39:17.7309532Z   group-by: filePath
2025-11-28T17:39:17.7309775Z   always-group-by: false
2025-11-28T17:39:17.7310023Z env:
2025-11-28T17:39:17.7310409Z   GITHUB_TOKEN: ***
2025-11-28T17:39:17.7310794Z ##[endgroup]
2025-11-28T17:39:18.3248464Z ##[group]📜 Preparing CTRF report
2025-11-28T17:39:18.3248940Z JUnit integration detected
2025-11-28T17:39:18.3308121Z No test cases found in the provided path. No CTRF report generated.
2025-11-28T17:39:18.3312841Z ##[error]Action failed with error: JUnit report not found at: /home/runner/_work/connect-api/connect-api/build/test-results/**/*.xml
2025-11-28T17:39:18.3610374Z Post job cleanup.
2025-11-28T17:39:18.3653287Z Post job cleanup.
2025-11-28T17:39:18.9693612Z ##[error]{"exitCode":125,"err":"unknown shorthand flag: 'f' in -f\n\nUsage:  docker [OPTIONS] COMMAND [ARG...]\n\nRun 'docker --help' for more information\n","out":""}
2025-11-28T17:39:18.9814228Z Post job cleanup.
2025-11-28T17:39:18.9875134Z Post job cleanup.
2025-11-28T17:39:19.2394025Z ##[group]Removing temp folder /home/runner/_work/_temp/docker-actions-toolkit-Mp1z0x
2025-11-28T17:39:19.2404854Z ##[endgroup]
2025-11-28T17:39:19.2405382Z ##[group]Post cache
2025-11-28T17:39:19.2405981Z State not set
2025-11-28T17:39:19.2407087Z ##[endgroup]
2025-11-28T17:39:19.2539310Z Post job cleanup.
2025-11-28T17:39:19.5172205Z ##[group]Removing builder
2025-11-28T17:39:19.6261678Z [command]/usr/bin/docker buildx rm builder-c439a7d4-f635-42ff-b573-7933c740bb4b
2025-11-28T17:39:21.7682494Z builder-c439a7d4-f635-42ff-b573-7933c740bb4b removed
2025-11-28T17:39:21.7709643Z ##[endgroup]
2025-11-28T17:39:21.7710148Z ##[group]Cleaning up certificates
2025-11-28T17:39:21.7715713Z ##[endgroup]
2025-11-28T17:39:21.7716265Z ##[group]Post cache
2025-11-28T17:39:21.7718020Z State not set
2025-11-28T17:39:21.7718975Z ##[endgroup]
2025-11-28T17:39:21.7860458Z Post job cleanup.
2025-11-28T17:39:21.8611558Z [command]/usr/bin/git version
2025-11-28T17:39:21.8672911Z git version 2.51.0
2025-11-28T17:39:21.8705195Z Temporarily overriding HOME='/home/runner/_work/_temp/d97499cd-8028-4b8b-b923-e090c9af2de2' before making global git config changes
2025-11-28T17:39:21.8705958Z Adding repository directory to the temporary git global config as a safe directory
2025-11-28T17:39:21.8708994Z [command]/usr/bin/git config --global --add safe.directory /home/runner/_work/connect-api/connect-api
2025-11-28T17:39:21.8734120Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2025-11-28T17:39:21.8756111Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2025-11-28T17:39:21.8927205Z [command]/usr/bin/git config --local --name-only --get-regexp *******
2025-11-28T17:39:21.8943266Z http.*******
2025-11-28T17:39:21.8949946Z [command]/usr/bin/git config --local --unset-all http.*******
2025-11-28T17:39:21.8971372Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp '*****' && git config --local --unset-all '******' || :"
2025-11-28T17:39:21.9243020Z Cleaning up orphan processes

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions