Full-featured Tauri Docker Image for CIs and local runs.
100K+
Full-featured Tauri Docker Image based on the official non-slim Rust images for Debian tags, and on the official Fedora image with rustup for Fedora tags, including:
This image is a good base for CIs (builds, unit & e2e tests, etc.) as well as for local runs.
Images are automatically updated on a daily basis.
Dockerfile linksNote
These tags only work with **Tauri v2**.
debian-trixie-26
rust:1-trixiedebian-trixie-26-nightly
rust:1-trixiedebian-trixie-24
rust:1-trixiedebian-trixie-24-nightly
rust:1-trixieNote
These tags work with both **Tauri v1 and v2**.
debian-bookworm-26
rust:1-bookwormdebian-bookworm-26-nightly
rust:1-bookwormdebian-bookworm-24
rust:1-bookwormdebian-bookworm-24-nightly
rust:1-bookwormNote
These tags only work with **Tauri v2**.
fedora-44-26
fedora:44 + rustupfedora-44-26-nightly
fedora:44 + rustupfedora-44-24
fedora:44 + rustupfedora-44-24-nightly
fedora:44 + rustupThese tags still exist, but their images are no longer updated.
Important
The `debian-bullseye-*` tags only work with **Tauri v1**. See [tauri-apps/tauri#9039][link-tauri-issue-9039].
debian-bookworm-22debian-bookworm-22-nightlydebian-bookworm-20debian-bookworm-20-nightlydebian-bookworm-18debian-bookworm-18-nightlydebian-bullseye-22debian-bullseye-22-nightlydebian-bullseye-20debian-bullseye-20-nightlydebian-bullseye-18debian-bullseye-18-nightlyfedora-40-22fedora-40-22-nightlyfedora-40-20fedora-40-20-nightlyfedora-37-20fedora-37-20-nightlyfedora-37-18fedora-37-18-nightlySince tauri-driver is available as a global command in this image, you can use it as is in wdio.config.js
(see documentation):
// ...
const config = {
// ...
beforeSession: () => {
// => No need for that: `path.resolve(os.homedir(), '.cargo', 'bin', 'tauri-driver')`
tauriDriver = spawn("tauri-driver", [], {
stdio: [null, process.stdout, process.stderr],
});
},
// ...
};
// ...
Example:
jobs:
core_unit_test:
name: Core Unit Test
runs-on: ubuntu-latest
container:
image: ivangabriele/tauri:debian-trixie-24
# This is REQUIRED if you use `tarpaulin`
# https://github.com/xd009642/tarpaulin/issues/146
# https://github.com/xd009642/tarpaulin#github-actions
options: --security-opt seccomp=unconfined
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Run
run: cargo test
working-directory: ./src-tauri
# https://github.com/xd009642/tarpaulin#github-actions
- name: Generate Coverage
run: cargo tarpaulin --all-features --out Xml --timeout 120 --verbose
working-directory: ./src-tauri
# Add any other step here to upload your coverage somewhere
e2e_test:
name: E2E Test
runs-on: ubuntu-latest
container:
image: ivangabriele/tauri:debian-trixie-24
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Install Node.js dependencies
run: yarn --frozen-lockfile # or `npm ci`
- name: Build
# Add your core + webview build command(s)
run: ...
# I recommend using the `nick-fields/retry@v4` action here
# with a `fuser -n tcp -k 4445` command to kill the process holding port 4445 (likely Selenium)
# since WebdriverIO often hangs during the first run (unable to connect)
- name: Run tests
uses: nick-fields/retry@v4
with:
timeout_seconds: 600
max_attempts: 3
retry_on: error
# https://v2.tauri.app/develop/tests/webdriver/ci/
command: |
fuser -n tcp -k 4445
xvfb-run wdio run ./configs/wdio.config.js
X is the OS name + version (one of debian-bookworm, debian-trixie, fedora-44).
y is the Node.js major version (one of 24, 26).
Z is the Rust variant (-nightly or nothing).
mise install if you want to run the tests.DOCKER_IMAGE_TAG=[DOCKER_TAG] make build
Example: DOCKER_IMAGE_TAG=debian-trixie-24 make build
DOCKER_IMAGE_TAG=[DOCKER_TAG] make run
Example: DOCKER_IMAGE_TAG=debian-trixie-24 make run
You need to have mise installed and run mise install in order to run the tests:
DOCKER_IMAGE_TAG=[DOCKER_TAG] make test
Example: DOCKER_IMAGE_TAG=debian-trixie-24 make test.
Content type
Image
Digest
sha256:7c992a0e9…
Size
1.6 GB
Last updated
about 20 hours ago
docker pull ivangabriele/tauri:fedora-44-26-nightly