From 9e5e1785fde04a01c5568514cf8a9164a210da7a Mon Sep 17 00:00:00 2001 From: "Mateo O." Date: Sat, 20 Jul 2024 23:11:15 -0500 Subject: [PATCH 1/2] feat: add docker support --- docker/8.1-alpine/Dockerfile | 24 ++++++++++++++++++++++++ docker/8.1-cli/Dockerfile | 23 +++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 docker/8.1-alpine/Dockerfile create mode 100644 docker/8.1-cli/Dockerfile diff --git a/docker/8.1-alpine/Dockerfile b/docker/8.1-alpine/Dockerfile new file mode 100644 index 0000000..4d6f9ee --- /dev/null +++ b/docker/8.1-alpine/Dockerfile @@ -0,0 +1,24 @@ +FROM php:8.1-alpine + +# Install os-level dependencies +RUN apk update \ + && apk --no-cache --virtual add git pcre-dev ${PHPIZE_DEPS} + +# Install scalar extension +RUN git clone https://github.com/nikic/scalar_objects.git \ + && cd scalar_objects \ + && phpize \ + && ./configure --enable-scalar_objects \ + && make \ + && make install \ + && php run-tests.php -p `which php` --show-diff -d extension=`pwd`/modules/scalar_objects.so -q \ + && docker-php-ext-enable scalar_objects + +# Remove os-level dependencies and src code +RUN apk del git pcre-dev ${PHPIZE_DEPS} \ + && rm -rf scalar_objects \ + && apk del git pcre-dev ${PHPIZE_DEPS} \ + && rm -rf /tmp/* /var/tmp/* + +ENTRYPOINT ["docker-php-entrypoint"] +CMD ["php", "-a"] diff --git a/docker/8.1-cli/Dockerfile b/docker/8.1-cli/Dockerfile new file mode 100644 index 0000000..7b69da2 --- /dev/null +++ b/docker/8.1-cli/Dockerfile @@ -0,0 +1,23 @@ +FROM php:8.1-cli + +# Install os-level dependencies +RUN apt-get update && apt-get install -y git + +# Install scalar extension +RUN git clone https://github.com/nikic/scalar_objects.git \ + && cd scalar_objects \ + && phpize \ + && ./configure --enable-scalar_objects \ + && make \ + && make install \ + && php run-tests.php -p `which php` --show-diff -d extension=`pwd`/modules/scalar_objects.so -q \ + && docker-php-ext-enable scalar_objects + +# Delete src code and os-level dependencies +RUN rm -rf scalar_objects \ + && apt-get purge -y git \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +ENTRYPOINT ["docker-php-entrypoint"] +CMD ["php", "-a"] From 10c15c579653610f561d4f4359046cac4e23d70a Mon Sep 17 00:00:00 2001 From: "Mateo O." Date: Sat, 20 Jul 2024 23:22:13 -0500 Subject: [PATCH 2/2] Add docker documentation --- docker/README.md | 58 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 docker/README.md diff --git a/docker/README.md b/docker/README.md new file mode 100644 index 0000000..008fe6a --- /dev/null +++ b/docker/README.md @@ -0,0 +1,58 @@ +# Docker images + +Use `nikic/scalar_objects` with docker + +# Steps + +1. Build your image +```shell +$ docker build -t php-scalar-objects ./8.1-alpine +``` + +2. Create a docker file for your projects + +Example `Dockerfile` +```dockerfile +FROM php-scalar-objects +COPY . /usr/src/myapp +WORKDIR /usr/src/myapp +CMD [ "php", "./index.php" ] +``` + +Example `index.php` +```php +length()); // int(3) +var_dump($string->startsWith("a")); // bool(true) +``` + +3. Build your project + +```shell +$ docker build -t my-php-app . +``` + +> Execute this in the same directory where your app is + +4. Run your app + +```shell +$ docker run -it --rm --name my-php-running-app my-php-app:latest +```