Containers
macOS · Linux · Windows · Containers · iOS and iPadOS · Android · ChromeOS · Browser · Node (WebAssembly)
A container runs Linux with a chosen C library, so everything on the Linux page applies. This page adds the choices for your Dockerfile. The tables repeat Linux targets because the base image determines the target.
Requirements
Section titled “Requirements”Choose a base image with glibc 2.28 or newer, or musl 1.2 or newer.
| C library | Base images |
|---|---|
| glibc | Debian 10, Ubuntu 20.04, Red Hat Enterprise Linux 8, or their successors |
| musl | Alpine 3.13 or newer |
What ships
Section titled “What ships”| Language | Package | What it selects here | Pages |
|---|---|---|---|
| Python | potluckdb on PyPI | wheels manylinux_2_28_x86_64, manylinux_2_28_aarch64, musllinux_1_2_x86_64, musllinux_1_2_aarch64 | Install · Quickstart |
| JavaScript | @potluckdb/potluckdb on npm | runtime packages @potluckdb/potluckdb-linux-x64-gnu, @potluckdb/potluckdb-linux-arm64-gnu, @potluckdb/potluckdb-linux-x64-musl, @potluckdb/potluckdb-linux-arm64-musl | Install · Quickstart |
| TypeScript | @potluckdb/potluckdb on npm | runtime packages @potluckdb/potluckdb-linux-x64-gnu, @potluckdb/potluckdb-linux-arm64-gnu, @potluckdb/potluckdb-linux-x64-musl, @potluckdb/potluckdb-linux-arm64-musl | Install · Quickstart |
| Java | dev.potluckdb:potluckdb-jvm | runtime resources linux-x86_64, linux-arm64 | Install · Quickstart |
| Kotlin | dev.potluckdb:potluckdb-jvm | runtime resources linux-x86_64, linux-arm64 | Install · Quickstart |
| Dart | potluckdb on pub.dev | the requested target’s C SDK archive, verified by the build hook (GNU only) | Install · Quickstart |
| Flutter | potluckdb on pub.dev | the requested target’s C SDK archive, verified by the build hook (GNU only) | Install · Quickstart |
| Go | github.com/potluckdb/potluckdb-go | the static runtime library the module carries for linux/amd64, linux/arm64 | Install · Quickstart |
| Rust | potluckdb on crates.io | engine catalog rows linux-x86_64-gnu, linux-arm64-gnu, linux-x86_64-musl, linux-arm64-musl | Install · Quickstart |
| C# (.NET) | potluckdb on NuGet | runtime identifiers linux-x64, linux-arm64, linux-musl-x64, linux-musl-arm64 | Install · Quickstart |
| C++ | the C SDK archive | the C SDK archive of the target | Install · Quickstart |
| C | the C SDK archive | the C SDK archive of the target | Install · Quickstart |
Not shipped for this platform: Swift, Objective-C.
| Target | Python wheel | npm runtime package | Rust crate | NuGet RID | JVM resource | Go module library | C SDK archive |
|---|---|---|---|---|---|---|---|
linux-x86_64-gnu | manylinux_2_28_x86_64 | @potluckdb/potluckdb-linux-x64-gnu | potluckdb | linux-x64 | linux-x86_64 | linux/amd64 | potluckdb-c-sdk-0.1.0-linux-x86_64-gnu.zip |
linux-arm64-gnu | manylinux_2_28_aarch64 | @potluckdb/potluckdb-linux-arm64-gnu | potluckdb | linux-arm64 | linux-arm64 | linux/arm64 | potluckdb-c-sdk-0.1.0-linux-arm64-gnu.zip |
linux-x86_64-musl | musllinux_1_2_x86_64 | @potluckdb/potluckdb-linux-x64-musl | potluckdb | linux-musl-x64 | — | — | potluckdb-c-sdk-0.1.0-linux-x86_64-musl.zip |
linux-arm64-musl | musllinux_1_2_aarch64 | @potluckdb/potluckdb-linux-arm64-musl | potluckdb | linux-musl-arm64 | — | — | potluckdb-c-sdk-0.1.0-linux-arm64-musl.zip |
Install
Section titled “Install”Python. Use python:3.14-slim for glibc or python:3.14-alpine for musl. pip selects the wheel by the image’s C library.
Node. Use node:22-slim or node:22-alpine. npm selects the runtime package by os, cpu and libc.
Java and Kotlin. Use a glibc image such as eclipse-temurin:21. The JVM package has no musl runtime, so -alpine JDK images are excluded.
.NET. Use linux-x64, linux-arm64, linux-musl-x64 or linux-musl-arm64 runtime identifiers. These match the Microsoft images with and without -alpine.
Go. The module contains the glibc runtime library it links. Go build constraints cannot distinguish glibc from musl. Use a glibc image such as golang:1.27-bookworm. The -alpine images are excluded.
A program using a storage service also needs libpotluckdb_storage.so from the C SDK archive beside the executable.
C++. The binary links the runtime. Build against the C library of the image where it will run. A program using a storage service also needs libpotluckdb_storage.so from the same archive beside the executable.
Rust. On glibc, the crate loads the runtime and storage libraries at run time. Include both beside the executable. On musl, the binary links the runtime, and the runtime crate contains no storage library.
License key. Supply it through POTLUCKDB_LICENSE_KEY. A container’s configuration directory does not outlive the container.
Credentials. Without explicit credentials, the adapter uses the provider’s chain. A pod or task identity therefore works without a credential key in the image.
Quickstart
Section titled “Quickstart”Run the Python quickstart in your chosen image. It prints Use query for this statement. and then quickstart: ok.
docker run --rm -v "$PWD:/work" -w /work python:3.14-slim sh -c "pip install potluckdb==0.1.0 && python quickstart.py"Analytics
Section titled “Analytics”Analytical reads use DuckDB. No core package contains it. Python, Node and Rust install it through a package or crate feature.
Other languages load the library listed for this platform on the analytics engine page, with its URL and digest. Name that library in the open options. Each language’s installation page gives the exact line.
Verified by the release
Section titled “Verified by the release”Each release candidate builds every target in the table and passes every required check of the release matrix before promotion. The packages that this page names are the packages that the release tested.
Each release also runs framework quickstarts on this platform: Electron, Tauri, Qt, Flutter. Each framework page describes its verification.