Batect is an alternative Docker Compose. For my own experience it is easier to use in terms of built-in features such as cross platform compatibility.
Unfortunately it is no longer maintained.
Its core is a yaml file that defines what containers to use and what tasks to execute. For example, I have one container called run-env and a task test-local which runs a line of command:
run-env:
build_directory: .
volumes:
– local: .
container: /code
– type: cache
container: /code/node_modules
name: node_modules
working_directory: /workdir
tasks:
test-local:
description: Run Playwright e2e Tests
run:
container: run-env
command: |
npx playwright test
environment:
ENVIRONMENT: local
Quick command to run locally:
./batect test-local
Troubleshooting
Issue: permission denied: ./batect
Run
chmod +x ./batect
Issue: Checksum unmatched for the download behind firewall
When running ‘./batect ‘ for the first time, batect will download jar from remote server.
Downloading Batect version 0.84.0 from https://updates.batect.dev/v1/files/0.84.0/batect-0.84.0.jar
To
/Users/{user}/.batect/cache/0.84.0/batect-0.84.0.jar
You might run into an issue:
In this case, the solution is to paste the url of jar into Chrome to download directly, and overwrite the local jar file.