These are Docker images designed for developing and testing modern SimplePie projects. We support the latest versions of 7.2 and 7.3.
All of these images are built from the Alpine Linux variants of the official PHP images. SimplePie-NG (and all related modern SimplePie projects) officially supports the latest releases of 7.2 and 7.3. The timezone built into the Docker image is UTC. This means that logs and logger output will use UTC for their timezone.
These are designed for local development with Docker Desktop. You can use FROM simplepieng/base:{TAG}
in your own Dockerfile
to build a production image, but you should only do so if you consciously choose to trust the SimplePie core team.
7.2-cli-alpine3.9
7.3-cli-alpine3.9
Alpine Linux is a popular Linux distribution for Docker containers because of its size. It builds on top of a project called BusyBox which uses musl (instead of glibc as the C/POSIX standard library implementation) and the Almquist Shell (Ash). This means that there are some differences between Alpine and your run-of-the-mill Debian, Ubuntu, RHEL, CentOS, or Amazon Linux distribution.
Differences in musl and glibc can lead to some small differences in behavior in PHP. Functions which map closely to the underlying C/C++ implementation are most likely to see differences (e.g., strftime, setlocale).
Differences between Bash and Ash can also be a source of weirdness for newcomers. Fundamentally, you want to avoid Bash-isms [1, 2, 3]. Sticking to traditional POSIX shell compatibility is a requirement for any shell scripts you want to contribute to the project.
Builds on top of the official PHP images by including the following PHP extensions, which are used by SimplePie NG or one of its underlying requirements.
curl, ds, intl, json, mbstring, opcache, xml, xsl, zip
You can mount the current directory inside the Docker container with the following command:
docker run -ti --volume $(pwd):/workspace simplepieng/base:7.3 /bin/sh
Builds on simplepieng/base
and simply adds make
.
On launch, it automatically runs make test
via the ENTRYPOINT
statement. This behavior can be overridden to launch a shell when running the docker run
command and passing the --entrypoint sh
option.
Builds on top of the simplepieng/base
images by adding xdebug and uopz extensions. This facilitates the ability to generate code coverage reports when you run PHPUnit tests.
The SimplePie project is a labor of love. Development of the next-generation of SimplePie was started in June 2017 as because it's a project I love, and I believe our community would benefit from this tool.
If you use SimplePie — especially to make money — it would be swell if you could kick down a few bucks. As the project grows, and we start leveraging more services and architecture, it would be great if it didn't all need to come out of my pocket.
You can also sponsor the development of a particular feature. If there's a feature that you want to see implemented, and I believe it's the right fit for the SimplePie project, you can sponsor the development of the feature to get it prioritized.
Your contributions are greatly and sincerely appreciated. See the Sponsor button along the top of the page for more information.