Docker containers for Perl 6
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Patrick Spek 7e096a1ba8
Make build.sh the standard way for all build instructions
2 months ago
docker Add -dev images 2 months ago
util Initial commit 2 months ago
README.md Make build.sh the standard way for all build instructions 2 months ago
build.sh Make build.sh the standard way for all build instructions 2 months ago

README.md

Tyil’s Perl 6 nightly Docker images

This repository contains some utilities I use to build Perl 6. There’s a Makefile available to make it straightforward and easy to use. The main purpose of the tools in this repository is to build Docker images suitable for running Perl 6 applications with. It can also be used to build a Perl 6 installation with a custom MoarVM, NQP or Rakudo part (or any or all of them) to test out certain patches or upcoming releases.

This image also contains Zef, the Perl 6 module manager, as this is incredibly useful for most usecases of this image.

Building the image

To make building the images easier, there’s a build.sh in the root’s repository. Running it with no arguments will build all Dockerfiles from the docker directory. You can supply it a bunch of names of the files in the docker directory to only build specific images:

./build.sh alpine alpine-dev

By default, the images you build will not be pushed to Dockerhub. To enable automatic pushing to Dockerhub, set the $PUSH_IMAGES variable to a non-empty value:

PUSH_IMAGES=1 ./build.sh

In a similar fashion, it’s also possible to pass additional arguments to docker by using $DOCKEROPTS. For instance, if you want to disable caching on the Docker builds, set it to --no-cache:

DOCKEROPTS="--no-cache" ./build.sh

Using different sources, branches or base images

This repository is built up to allow for experimentation with the Perl 6 base. The branch and repository URLs can all be changed individually to build a Perl 6 using a specific branch for testing purposes. You can pass the following arguments to build.sh to alter the build instructions:

  • MOAR_BRANCH - The branch to use of the $MOAR_REPO.
  • MOAR_REPO - The URL to pull the MoarVM repository from.
  • NQP_BRANCH - The branch to use of the $NQP_REPO.
  • NQP_REPO - The URL to pull the NQP repository from.
  • RAKUDO_BRANCH - The branch to use of the $RAKUDO_REPO.
  • RAKUDO_REPO - The URL to pull the Rakudo repository from.

By default, the official upstream sources are used for $MOAR_REPO, $NQP_REPO and $RAKUDO_REPO, and master is used as the branch. There are also options to change the base image used by Docker, and to change the resulting image’s name and tag:

  • BASE - The base Docker image to build the Perl 6 Docker image on. Currently only alpine and debian are supported options. Defaults to debian.
  • USER - The username to use for the resulting Docker image. Defaults to the running user’s $USER.
  • NAME - The name of the resulting Docker image. Defaults to perl6.
  • TAG - The tag of the resulting Docker. Defaults to latest.

License

All code in this repository is made available under the terms of the GNU Affero General Public License, version 3 or later.