Skip to content
George V. Reilly edited this page Jan 31, 2017 · 9 revisions

Command Structure

  • Switch from flyingcloud --build|--run LAYER to flyingcloud LAYER build and flyingcloud LAYER run, like awscli. This means that different flags can be used for each verb.

Layer Improvements

  • Support from: REPOSITORY as well as parent
  • Support, say, source: github://org/repo as a layer, so that layers can be shared and reused.
  • Support filesystem path to layer in flyingcloud.yaml
  • Provide a YAML mechanism for passing parameters to remote layers
  • Support MAINTAINER and other Dockerfile keywords.
  • Support labels as metadata
  • Allow Docker to run as non-root: http://askubuntu.com/questions/477551/how-can-i-use-docker-without-sudo

Build Improvements

  • I talked to jag from the Ansible Container team at DockerCon. He said that they install build-time tools in a mounted volume, so that they don't appear in the final image, which reduces image size and attack surface. It's possible that FlyingCloud could achieve this by using Docker in Docker: install the build tools in one container, then use that container to host and build the target container. Both the build and target containers then need to be pushed to repositories, so that they can be reused by higher layers. Also Docker outside of Docker
  • See also Glyph's Deploying Python Applications with Docker, where he creates a builder container, which emits Python wheels, and the application container separately.
  • Investigate ONBUILD

Miscellaneous

  • Port to Windows
  • Investigate Marek Goldmann's Docker Squash
  • The flyingcloud script has a hardcoded list of environment variables that are passed along to sudo when running on Linux. Take those environment variable names from flyingcloud.yaml. Also, don't pass PATH. Instead, have the Python code prepend $VIRTUAL_ENV/bin to os.environ['PATH'], if sudo'd
Clone this wiki locally