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.
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 ...
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 to this problem is super simple.
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 -v Docker version 20.10.7, build f0df350
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
serve: docker-compose \ -p my_project_name_here \ --remove-orphans && \ docker-compose up --remove-orphans .PHONY: serve