The main purpose of this repository is hosting the Dockerfile for building the Docker image used for the Emscripten CircleCI build.
This Dockerfile allows to build a Docker image, with the tools required for the Emscripten CI build. The image is hosted at Docker Hub and used by the CircleCI Emscripten Project.
The following sections describe the important parts of the Dockerfile.
The FROM
instruction sets the base image for the final Docker image. Also, all subsequent instructions are executed using this base image.
See FROM (Docker Reference).
Additional packages/tools required by the Emscripten CI build are installed via apt-get using the RUN
instruction.
It is good practice to execute apt-get update && apt-get install * && apt-get clean cache
using a single RUN
instruction, as each docker instruction is creating a new read-only layer. Running apt-get clean
helps keeping the resulting image size low (which would not be the case if apt-get install
was executed as a separate RUN
instruction).
It's recommended to sort the package names alphabetically. For better traceability we created separate package sections for build, docs and test packages.
See best practices for writing Dockerfiles.
Pip packages required by the Emscripten CI build are installed in a similar manner as described in the previous section. For example, the --no-cache-dir
parameter is used in order to keep the size of the final image low.
Use the following commands for updating the emscripten-ci
pre-built Docker image:
-
Clone/pull the latest version of this repository
-
Build docker image locally from the repository root (location of Dockerfile):
docker build . --tag emscripten/emscripten-ci
-
Login to your Docker Hub account (if not logged in already):
docker login
-
Push docker image to Docker Hub:
docker push emscripten/emscripten-ci
See Docker CLI reference for further details.