From Fedora Project Wiki

Revision as of 15:49, 24 May 2018 by Aday (talk | contribs)

Desktop Containers

Design and planning for facilitating container-based development on the desktop.

Goals

Primary goals:

  • Allow developers to comfortably use common CLI tools on ostree-based workstation products
  • Should feel familiar to those who are used to traditional package-based systems
  • Transition to ostree-based workstation products should be as smooth as possible
  • Integrated documentation/guidance
  • Container-based development features should be accessible from the command line as well as 3rd party development apps
  • Promote container-based development
    • Demonstrate the benefits of container-based development to new audiences
    • Make it easy for developers to try containers for the first time
    • Align with and complement existing container tooling
    • Provide a bridge to the wider Red Hat container ecosystem

Potential secondary goals:

  • Graphical tooling to make container-based development easier and more convenient
    • A container-aware terminal application
    • A container management application
    • ...
  • Red Hat Container Registry integration
    • Advertise the registry
    • Make it easy to download and use images
    • ...
  • Promote containers as a way to host and manage types of development project that don't tend to use containers at the moment
  • OpenShift integration, such as basic functionality to deploy images, monitor clusters

Non-goals:

  • Desktop application development with containers - this is already covered by Flatpak

Audience, Use Cases, Research

Relevant Art

See Relevant Art.

Discussion

Tentative Design

Phase one: privileged toolboxes

The initial plan is to build on existing "pet container" efforts and turn them into a more complete and robust solution. Elements of this:

  • High-level command line tools to allow creating and running containers, including "toolbox" containers
  • "Toolboxes" are envisioned to be privileged containers, which contain enough Fedora to run DNF and allow installing packages. It would be good to have one available out of the box, and make it possible to create more as necessary.
  • Have the terminal prompt default to run within a toolbox environment
  • Provide high-quality documentation
    • This should link to and/or integrate with other container-specific documentation
  • Effective onboarding (needs design)
    • Could potentially show some help the first time the terminal is used
    • An interactive command-line tutorial is another possibility
  • Potentially modify the default bash prompt, to indicate whether the prompt is in a container or the host, and whether the container is privileged or not