From b702e0c084f6d98cccfd39eb9bafc9de55c46fa2 Mon Sep 17 00:00:00 2001 From: luke Date: Sat, 28 Jan 2023 20:03:55 +0000 Subject: [PATCH] Adds Docker to allow users to get the project up and running quickly. --- CONTRIBUTING.md | 19 +++++++++++++++++++ docker-compose.yml | 14 ++++++++++++++ docker/Dockerfile | 19 +++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 docker-compose.yml create mode 100644 docker/Dockerfile diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4037f219..ea3fc05f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -54,3 +54,22 @@ Integration tests: ```bash composer test:integration ``` + +## Simplified setup using Docker + +If you have Docker installed, you can quickly get all dependencies for Pest in place using +our Docker files. Assuming you have the repository cloned, you may run the following +commands: + +1. `docker compose build` to build the Docker image +2. `docker compose run --rm composer install` to install Composer dependencies +3. `docker compose run --rm composer test` to run the project tests and analysis tools + +If you want to check things work against a specific version of PHP, you may include +the `PHP` build argument when building the image: + +```bash +docker compose build --build-arg PHP=8.2 +``` + +The default PHP version will always be the lowest version of PHP supported by Pest. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..70b75de2 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.8" + +services: + php: + build: + context: ./docker + volumes: + - .:/var/www/html + composer: + build: + context: ./docker + volumes: + - .:/var/www/html + entrypoint: ["composer"] diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..61334034 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,19 @@ +ARG PHP=8.1 +FROM php:${PHP}-cli-alpine + +RUN apk update \ + && apk add zip libzip-dev icu-dev + +RUN docker-php-ext-configure zip +RUN docker-php-ext-install zip +RUN docker-php-ext-enable zip + +RUN docker-php-ext-configure intl +RUN docker-php-ext-install intl +RUN docker-php-ext-enable intl + +COPY --from=composer:2 /usr/bin/composer /usr/bin/composer + +WORKDIR /var/www/html + +ENTRYPOINT ["php"]