Skip to content
@ubuntu-rocks

Rocks Community Playground

A shared GitHub organization for members of the Rocks Community to get some hands-on and share their rocks.

Welcome to the Rocks Community playground! 👋

The world’s best portfolio and community for production-grade container images.

A place for community members to learn, practice and share.

🍿 Before you get started

The Rocks Community is your hub for exploring Ubuntu Rocks and everything "containers". Whether you're a seasoned Rockcraft user or Chisel enthusiast, this community is an inclusive space for learning, sharing, and connecting with fellow Ubuntu container developers.

Community Engagement Model

The goal is to have a contributor/collaborator engagement model that motivates people to build rocks. Community members are expected to:

  • work together on shared projects,
  • have clear and open access for collaboration,
  • participate in simple peer-review processes,
  • follow workflows that are open to change,
  • have equal opportunity/level playing field.

🌈 Be Part of the Rocks Community

Whether it is about rocks, Chisel, or Ubuntu containers in general, your participation in the community is more than welcome! If you are joining as someone who has something to share or someone who simply wants to learn, please remember that this is an open space for people who embrace the same interests.

There are many ways you can participate in the Rocks Community. Just find the right level of engagement that fits you:

  • Join the Rocks Community space in Matrix, which is your direct line of communication to both developers and users;
  • The Rocks Discourse is where contributors shape ideas through open discussions;
  • To become an official member of the Rocks Community, you may apply to be an external collaborator in this Rocks Community Playground, putting you on a path to eventually becoming an official Ubuntu Member and contributing to our Ubuntu Rocks.

Membership Application

The Rocks Community Playground is a shared GitHub organization for members of the Rocks Community to get some hands-on and share their rocks.

Is it meant to be a safe space for open collaboration and as such, in order to become an external collaborator, you must meet the following requirements:

💬 Communication

Matrix Join our community space at #rocks:ubuntu.com. Newcomers are encouraged to introduce themselves in the general chatroom (#rocks-general:ubuntu.com) and browse the community space for other useful rooms.
Discourse Important events and announcements are posted, in their long format, at https://discourse.ubuntu.com/c/rocks. These may also be cross-referenced in Matrix.
NOTE: Discourse is not being used for technical support.
Blog Articles about Ubuntu containers: https://ubuntu.com/blog/tag/containers.

🗓️ Meetings

The Rocks Community has a public calendar (iCal) you can subscribe to, in order to be up to date with all community meetings and events!

Fortnightly office hours

Called the “Starcraft Clinics”, this meeting takes place every two weeks and joins forces with the developers and users of Rockcraft and other craft tools (like Snapcraft and Charmcraft). Everyone is welcome to come over and discuss issues with the crafts. This is an opportunity to get some face-to-face time with the experts and work together through those issues.

Time: every two Fridays, at 3 pm CET
Location: https://meet.google.com/ixc-nucm-hjn

Monthly meetings

These are general-purpose meetings that take place once a month. Everyone is welcome to join and share their work, discuss containers and propose features.

Time: every last Tuesday of the month, at 1 pm UTC
Location: https://meet.google.com/hfe-fbky-vnh
Meeting agenda and notes: https://hackmd.io/@vaCZ_Zv3TOuNXqiub-KbKw/HyUZvxytT

🎩 Community Governance Bodies

Rocks Community Council

The primary governing body which is responsible for the community's processes and structure.

Name Contact Appointed on
Cristovao Cordeiro (@cjdcordeiro) @cjdc:ubuntu.com 12/13/2023
Sergio Schvezov (@sergiusens) @sergiusens:ubuntu.com 12/13/2023

Rocks Technical Board

Tech-savvy community members who are responsible for making difficult technical decisions.

Name Contact Appointed on
Tiago Nobrega (@tigarmo) @tigarmo:ubuntu.com 12/13/2023
Anas El Husseini (@linostar) @linux.anas:ubuntu.com 12/13/2023

❓ FAQ

What is a rock?

A rock is an OCI-compliant container image, just like those in container registries such as Docker Hub. Rocks are, however, meticulously designed to meet cloud-native software’s security, stability, and reliability requirements. Based on Ubuntu LTS, rocks promote a secure, user-centric and predictable experience at both build and run time, through declarative build recipes, Chisel primitives and a powerful service manager as the entrypoint - Pebble.

Read the docs to learn more about rocks.

What do you mean by “OCI-compliant”?

The Open Container Initiative (OCI) is the governance structure responsible for creating the industry standards around container formats and runtimes. Those standards include the OCI Image Format Specification, followed by rocks.

What is Pebble, and why is it the entrypoint?

Pebble is a service manager that enables the seamless orchestration of a collection of local service processes as an organised set, i.e. it treats your commands as manageable units which can be controlled together as a group (called Pebble “plan”). It has been designed with custom-tailored features that enhance the overall container experience, thus making it the ideal candidate for the container’s init process.

Read the docs to learn more about Pebble.

What is Chisel, and why is it important?

Chisel is a tool, developed by Canonical, for extracting well-defined portions (aka slices) of Ubuntu packages into a filesystem. Chiselled rocks contain only the strictly necessary for running the container application, thus reducing the image’s size and attack surface.

Read the docs to learn more about Chisel.

Chisel uses package slices. What are those?

A package slice defines a subset of the package’s contents that Chisel should install. For each Ubuntu release, there’s a Chisel release. In a Chisel release, you may find one Slice Definitions File (SDF) for each Ubuntu package on that release. The SDFs are the YAML files where the package slices are declaratively defined. Finally, Chisel refers to package slices via an underscore-based naming convention, e.g. if you try to install package_foo, Chisel will not install the whole package, but instead, only the contents defined by slice foo.

Read the guides to learn more about package slicing.

What is Rockcraft?

Rockcraft is a tool to create rocks! The chiselling of packages and the abstraction of repetitive steps (like defining the image’s entrypoint) are embedded in the tool, i.e. just tell the tool what packages (or package slices) to install and what commands the container should run, and Rockcraft will implicitly take care of setting those up for you. Plus, it provides a declarative build experience (based on YAML build recipes) that is familiar to other crafting tools like Snapcraft and Charmcraft.

Read the docs to learn more about Rockcraft.

Why should you adopt rocks?

While they are as OCI-compliant as any other container image in your favourite container registry, the one thing to remember is that the OCI specifications focus solely on functionality and interoperability. Rocks go a step further and extend the OCI Image Format Specification to add focus on:

  • security: by relying on well-supported Ubuntu releases and promoting the use of package slices to reduce the image’s size and subsequently its attack surface;
  • UX: by providing a powerful and consistent deployment interface for all containers;
  • transparency: through a human-readable build format (YAML recipes) and extended image metadata that can be accessed prior to executing the container application.

Read the docs to learn more about what sets rocks apart.

Why should I care about the Rocks Community Playground?

This GitHub organisation is more than just a playground. It is an entry point for community members who want to learn, experiment, and potentially contribute to other rocks, including the ones from Canonical. Apart from being a safe space for development and experimentation, this organisation also offers a set of utilities to help members get familiar with rocks (like rocks-specific GitHub workflows, issue templates and examples).

How can I contribute?

You’ve taken the first step just by reading this FAQ! What else can you do?

  1. Be an active member of the Rocks Community: provide feedback and create and discuss content about rocks, Chisel, Pebble or any Ubuntu-based container image (via workshops, articles, videos, meetups, etc.). See our communication channels for more.
  2. Help document the product and tooling: you can create issues and/or improve the documentation about Rocks and the associated tools.
  3. Develop with us: if you’re familiar with Python and/or Go, then you can create bug reports and Pull Requests for Chisel, Pebble and Rockcraft.
  4. Propose new package slices: the addition of new package slice definitions is a community effort! Feel free to propose your slice definition in the chisel-releases repo.

Popular repositories Loading

  1. dotnet dotnet Public

    Ubuntu ROCKs for the .NET runtime and family

    48 4

  2. chiselled-jre chiselled-jre Public

    A distroless-like Java Runtime image based on Ubuntu

    2 6

  3. .github .github Public

    The Rocks Community profile and public information

  4. .build .build Public

    Built-in repository for hosting the GitHub workflow responsible for building, testing and publishing ROCKs

    Python 1

Repositories

Showing 4 of 4 repositories
  • chiselled-jre Public

    A distroless-like Java Runtime image based on Ubuntu

    ubuntu-rocks/chiselled-jre’s past year of commit activity
    2 6 30 8 Updated Jul 23, 2024
  • dotnet Public

    Ubuntu ROCKs for the .NET runtime and family

    ubuntu-rocks/dotnet’s past year of commit activity
    48 Apache-2.0 4 32 2 Updated Jul 15, 2024
  • .build Public

    Built-in repository for hosting the GitHub workflow responsible for building, testing and publishing ROCKs

    ubuntu-rocks/.build’s past year of commit activity
    Python 0 1 0 0 Updated Jul 5, 2024
  • .github Public

    The Rocks Community profile and public information

    ubuntu-rocks/.github’s past year of commit activity
    0 0 1 1 Updated Jan 24, 2024

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…