Skip to content

Commit

Permalink
docs(installation): document multi-platform support in Docker builds (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
mistercrunch authored and pull[bot] committed Mar 14, 2024
1 parent 301bdcc commit 9d81053
Showing 1 changed file with 22 additions and 6 deletions.
28 changes: 22 additions & 6 deletions docs/docs/installation/docker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,16 @@ schemes to help users navigate our offerings.

Images are built and pushed to the [Superset Docker Hub repository](
https://hub.docker.com/r/apache/superset). Different sets of images are created for:
- Published releases, with tags like `3.0.0` and the `latest` tag.
- Pull request iterations, each identified by tags starting with a SHA like

- **Published releases** (`release`): with tags like `3.0.0` and the `latest` tag.
Those are multi-platform (arm+amd). More on that later.
- **Pull request iterations** (`pull_request`):, each identified by tags starting with a SHA like
`8a2f7d378ab13c156fa183d9284b607ed69f5ecc`, and `pr-3454`, referencing the pull
request ID.
- Merges to the main branch (`master`), resulting in new SHAs, with tags
- **Merges to the main branch** (`push`): resulting in new SHAs, with tags
prefixed with `master` for the latest `master` version.

Each code version has multiple builds for different purposes, identified by suffixes:
Each CI build run has multiple builds for different purposes, identified by suffixes:
- **Build preset:** We offer various images for different needs:
- `lean`: The default Docker image, including both frontend and backend. Tags
without a build_preset are lean builds, e.g., `latest`.
Expand All @@ -30,7 +32,8 @@ Each code version has multiple builds for different purposes, identified by suff

- `latest`: The latest official release build, implicitly the lean build on
`linux/amd64`.
- `latest-dev`: the `-dev` image of the latest official release build, with a headless browser and root access.
- `latest-dev`: the `-dev` image of the latest official release build, with a
headless browser and root access.
- `master`: The latest build from the `master` branch, implicitly lean on
`linux/amd64`.
- `master-dev`: Similar to `master` but includes a headless browser and root access.
Expand Down Expand Up @@ -61,7 +64,20 @@ build times, larger images, lower layer cache hit rate, ...).
For production use cases, we recommend that you derive our `lean` image(s) and
add database support for the database you need.

## On ARM builds and working with Apple silicon
## On supporting arm64 AND amd64

Only the release builds are multi-platform, supporting `linux/arm64`
and `linux/amd64`. This enables higher level constructs like `helm` and
docker-compose to point to these images and effectively be multi-platform
as well.

Pull requests and master builds
are one-image-per-platform so that they can be parallized and the
build matrix for those is more sparse as we don't need to build every
build preset on every platform, and generally can be more selective here.
For those builds, we suffix tags with `-arm` where it applies.

### Working with Apple silicon

Apple's current generation of computers uses ARM-based CPUs, and Docker
running on MACs seem to require `linux/arm64/v8` (at least one user's M2 was
Expand Down

0 comments on commit 9d81053

Please sign in to comment.