Bit of an obscure one this, and given that I received absolutely no Google results, I’m guessing may be of little help to … well, anyone. But perhaps this is the price one pays for being an early adopter.
The Problem
I created a GitHub actions workflow that ran a Makefile
command. It looked something like this:
---
name: E2E Tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: make install
run: make install
- name: make serve
run: make serve
Excuse the crappy steps
, I was / am still kinda experimenting with this workflow.
Anyway, what we really care about (and where the problem actually lies) is in what the make install
command represents:
serve:
docker compose \
-p my_project_name_here \
--remove-orphans && \
docker compose up --remove-orphans
.PHONY: serve
Don’t be put off if you don’t use / understand Makefile
‘s, but if you don’t, they are pretty useful. Other solutions exist, yadda yadda.
Keen eyed readers will have spotted something potentially curious:
docker compose ...
Not:
docker-compose ...
Yeah, so I got this from a little info at the end of my local command line output:
➜ my-project git:(e2e-tests-setup) docker-compose
Define and run multi-container applications with Docker.
Usage:
docker-compose [-f <arg>...] [--profile <name>...] [options] [--] [COMMAND] [ARGS...]
docker-compose -h|--help
...
Docker Compose is now in the Docker CLI, try `docker compose`
(Excuse the formatting, WP does its own thing)
See that line at the very end. Why not try the new stuff, right? Who doesn’t love the shiny.
But herein lies the problem. Note, even the official docs aren’t (yet) consistent in what format they use.

The Solution
The solution to this problem is super simple.
Use docker-compose
for your GitHub actions commands.
The problem arises because GitHub actions thinks I’m trying to run docker
commands, and must be using an older version of the Docker CLI
.
Locally:
docker -v
Docker version 20.10.7, build f0df350
GitHub Actions:
Run docker -v
Docker version 20.10.7+azure, build f0df35096d5f5e6b559b42c7fde6c65a2909f7c5
Anyway, my fix was to change the Makefile
command to use docker-compose
instead of docker compose
:
serve:
docker-compose \
-p my_project_name_here \
--remove-orphans && \
docker-compose up --remove-orphans
.PHONY: serve