Skip to content

simplepie/docker

Repository files navigation



SimplePie Docker Images

These are Docker images designed for developing and testing modern SimplePie projects. We support the latest versions of 7.2 and 7.3.

Badges

Health

Open Issues Pull Requests Contributors Repo Size GitHub Commit Activity GitHub Last Commit

Social

Author Follow Blog Stars

Compliance

License

Images

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

Notes about Alpine Linux

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.

simplepieng/base

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

simplepieng/test-runner

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.

simplepieng/test-coverage

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.

Please Support or Sponsor Development

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.