tree: 8a55856c6f6c8c801c7b0f52ddeacc93d414aeba [path history] [tgz]
  1. .gitignore
  2. Dockerfile.build.android.arm64
  3. Dockerfile.build.android.armv7
  4. Dockerfile.build.arm64
  5. Dockerfile.build.armv6
  6. Dockerfile.build.armv7
  7. Dockerfile.build.cmake.ubuntu-17.04
  8. Dockerfile.build.ubuntu-16.04-cuda_8.0_cudnn5
  9. Dockerfile.build.ubuntu-17.04
  10. Dockerfile.build.ubuntu-17.04.scala.docker
  11. Dockerfile.run.ubuntu-17.04.julia
  12. Dockerfile.run.ubuntu-17.04.perl
  13. Dockerfile.run.ubuntu-17.04.python
  14. Dockerfile.run.ubuntu-17.04.r
  15. Dockerfile.test.ubuntu-17.04
  16. README.md
  17. arm.crosscompile.android.mk
  18. arm.crosscompile.mk
  19. tool.py
docker_multiarch/README.md

Dockerized multi-architecture build

These docker files and utilities will build mxnet and run tests for different architectures using cross compilation and produce runtime binary artifacts.

This utilities require that you have docker installed. Docker CE is recommended.

To compile for all the supported architectures you can run the script

$ ./tool.py

To build a single arch, you can invoke docker directly:

$ docker build -f Dockerfile.build.<arch> -t <tag> .

Or call the dockerfile directly:

docker build -f <dockerfile> -t <tag> .

Or pass the architecture id to the tool:

$ ./tool.py -a ubuntu-17.04

By convention all the Dockerfiles produce the build artifacts on /work/build so they can be copied after.

The tool will leave the resulting artifacts on the build/ directory

TODO

  • Handle dependencies between docker files, for example having a yaml file with the dependency graph so they can be built in the right order. Right now the dependency is very simple so simple alphabetical sorting of the images does the trick.