Sign inSign up

ivangabriele/tauri

By ivangabriele

•Updated about 20 hours ago

Full-featured Tauri Docker Image for CIs and local runs.

Image
4

100K+

ivangabriele/tauri repository overview

⁠Tauri Docker Image

img-docker img-github-actions

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.



⁠Debian v13 ("trixie")

Note

These tags only work with **Tauri v2**.
⁠Debian v12 ("bookworm")

Note

These tags work with both **Tauri v1 and v2**.
⁠Fedora v44

Note

These tags only work with **Tauri v2**.
⁠Legacy tags

These 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].

⁠E2E Testing

⁠WebDriverIO

Since 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],
    });
  },

  // ...
};

// ...

⁠Continuous Integration

⁠GitHub Actions

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

⁠Contribute

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).

⁠Prerequisites
  • Docker, Podman or any other Docker-compatible container engine.
  • mise⁠ + mise install if you want to run the tests.
⁠Build
DOCKER_IMAGE_TAG=[DOCKER_TAG] make build

Example: DOCKER_IMAGE_TAG=debian-trixie-24 make build

⁠Run
DOCKER_IMAGE_TAG=[DOCKER_TAG] make run

Example: DOCKER_IMAGE_TAG=debian-trixie-24 make run

⁠Test

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.


Tag summary

Content type

Image

Digest

sha256:7c992a0e9…

Size

1.6 GB

Last updated

about 20 hours ago

docker pull ivangabriele/tauri:fedora-44-26-nightly