act: docker-compose: command not found
Hi, this really nice repo for running action in locally. But I have a problem when running docker-compose in action.
This is output
$ act -j test
[build/test] 🚀 Start image=node:12.6-buster-slim
[build/test] 🐳 docker run image=node:12.6-buster-slim entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[build/test] 🐳 docker cp src=C:\Users\Liem\docker\wordpress-docker-compose/. dst=/github/workspace
[build/test] ⭐ Run actions/checkout@v2
[build/test] ✅ Success - actions/checkout@v2
[build/test] ⭐ Run Build service s
[build/test] | /github/workflow/1: line 2: docker-compose: command not found
[build/test] ❌ Failure - Build service s
Error: exit with `FAILURE`: 127
This is my workflow config
name: build
on:
push:
branches:
- master
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build service s
run: docker-compose up -d
- name: List container
run: docker-compose ps
- name: Test Wordpress container
run: docker run --rm --network container:wordpress-docker-compose_wordpress_1 appropriate/curl --retry 3 --retry-connrefused http://localhost:8080/
- name: Test PhpMyAdmin container
run: docker run --rm --network container:wordpress-docker-compose_phpmyadmin_1 appropriate/curl --retry 3 --retry-connrefused http://localhost:8888/
This is my docker-compose.yml
file
version: '3.7'
services:
wordpress:
image: wordpress:latest
depends_on:
- wordpress_db
ports:
- "8080:80"
# volumes:
# - type: bind
# source: ./wp-content
# target: /var/www/html/wp-content
restart: always
environment:
WORDPRESS_DB_HOST: wordpress_db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: secret
WORDPRESS_DB_NAME: wordpress
wordpress_db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: secret
phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- wordpress_db
restart: always
ports:
- "8888:80"
environment:
PMA_HOST: wordpress_db
MYSQL_ROOT_PASSWORDL: secret
networks:
- back
networks:
back:
volumes:
db_data: {}
My PC:
- Windows 10. version 1909
- Docker version 19.03.5, build 633a0ea
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 6
- Comments: 21 (2 by maintainers)
Using
--platform ubuntu-latest=lucasalt/act_base:latest
instead of--platform ubuntu-latest=lucasalt/act_base
worked for me without docker login. Many thanks!Related to #107
See https://github.com/nektos/act#runners.
You can customize the image used for the runs-on. I’ve created an image that is a match to GitHub runners, but its like 15GB!
I did pick the Medium image on first
act
run (see the image name below, as listed on https://github.com/nektos/act#runners), and gotdocker-compose: command not found
anyway:Here’s the workflow file: https://github.com/openwhyd/openwhyd/blob/master/.github/workflows/ci.yml#L308
Another way is to create additional action
setup-docker-compose
like we havesetup-node
which is responsible for docker-compose installationand this action can internally perform
docker-compose --version
to skip himself if docker-compose installed already. or it can internally check enverounmentenv=REAL_GITHUB_ACTION_IMAGE
to skip himself.I think it is more general way then create new image because it don’t need to recreate image every time when base image changed.
I was about to use the runner image from @LucasCtrl but the latest version is from 2020 and it’s hard to assume
act
did not bring improvements since then.Except if there is a watcher for
act
images that rebuild one withdocker-compose
, I won’t go this way.The solution I use for now:
(specify the version otherwise the
action
will require you providing a validGITHUB_TOKEN
)https://docs.docker.jp/compose/install.html#linux-compose
It works GitHub Actions and act.
I create a image with docker and docker-compose.
docker pull echowuhao/act_base:latest
I think it is enough for those who use docker and docker-compose to run tests.
if not, easy to adjust based on the Dockerfile.
https://github.com/swuecho/act_base
I did not know how I end up delete the image. thanks @LucasCtrl to set it up.
no, I thought I could download it without login - I somehow found another link to your image and that I could download without login (don’t remember the URL though) and it works great
Related post: https://github.community/t5/GitHub-Actions/docker-compose-command-not-found/td-p/47654
Closing this as a duplicate of #107