{"id":15662577,"url":"https://github.com/ivangabriele/docker-tauri","last_synced_at":"2025-04-30T08:13:02.875Z","repository":{"id":53457799,"uuid":"521436590","full_name":"ivangabriele/docker-tauri","owner":"ivangabriele","description":"Full-featured Tauri Docker OS images with tauri-driver (WebDriver), Tarpaulin and Node.js + Yarn.","archived":false,"fork":false,"pushed_at":"2024-10-09T22:21:16.000Z","size":100,"stargazers_count":29,"open_issues_count":3,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-30T08:12:57.795Z","etag":null,"topics":["cargo","ci","continuous-integration","debian","docker","docker-hub","docker-image","fedora","github-actions","linux","nightly","nightly-build","nodejs","rust","tarpaulin","tauri","tauri-driver","webdriver","yarn"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/repository/docker/ivangabriele/tauri","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivangabriele.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-04T22:50:16.000Z","updated_at":"2025-02-17T04:19:07.000Z","dependencies_parsed_at":"2024-03-05T06:43:17.948Z","dependency_job_id":"47f36402-54cc-4a71-b875-3af40fde5b54","html_url":"https://github.com/ivangabriele/docker-tauri","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangabriele%2Fdocker-tauri","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangabriele%2Fdocker-tauri/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangabriele%2Fdocker-tauri/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangabriele%2Fdocker-tauri/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivangabriele","download_url":"https://codeload.github.com/ivangabriele/docker-tauri/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251666338,"owners_count":21624295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cargo","ci","continuous-integration","debian","docker","docker-hub","docker-image","fedora","github-actions","linux","nightly","nightly-build","nodejs","rust","tarpaulin","tauri","tauri-driver","webdriver","yarn"],"created_at":"2024-10-03T13:33:22.012Z","updated_at":"2025-04-30T08:13:02.852Z","avatar_url":"https://github.com/ivangabriele.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tauri Docker Image\n\n[![img-docker]][link-docker]\n[![img-github-actions]][link-github-actions]\n\nFull-featured Tauri Docker Image based on [Rust][link-rust] non-slim Debian images including:\n\n- [Tauri][link-tauri]\n- [Node.js][link-nodejs] _with [Yarn][link-yarn]_\n- [Tarpaulin][link-tarpaulin]\n- [tauri-driver][link-tauri-driver] \\* _with [WebDriver][link-webdriver]/[WebDriverIO][link-webdriverio]_\n- [psmisc][link-psmisc] (which includes [fuser][link-fuser])\n\n\u003e [!WARNING]  \n\u003e **(\\*) tauri-driver is currently in pre-alpha**  \n\u003e Check the [official documentation](https://tauri.app/v1/guides/testing/webdriver/introduction) for more information.\n\nThis image is a good base for CIs (builds, unit \u0026 e2e tests, etc) as well as for local runs.\n\nImages are automatically updated on a daily basis.\n\n---\n\n- [Supported tags and respective `Dockerfile` links](#supported-tags-and-respective-dockerfile-links)\n  - [Debian v12 (\"bookworm\")](#debian-v12-bookworm)\n  - [Debian v11 (\"bullseye\")](#debian-v11-bullseye)\n  - [Fedora v40](#fedora-v40)\n  - [Legacy tags](#legacy-tags)\n- [E2E Testing](#e2e-testing)\n  - [WebDriverIO](#webdriverio)\n- [Continuous Integration](#continuous-integration)\n  - [Github Actions](#github-actions)\n- [Roadmap](#roadmap)\n- [Contribute](#contribute)\n  - [Prerequisites](#prerequisites)\n  - [Build](#build)\n  - [Run](#run)\n  - [Test](#test)\n\n---\n\n## Supported tags and respective `Dockerfile` links\n\n### Debian v12 (\"bookworm\")\n\n\u003e [!NOTE]  \n\u003e These tags work with both **Tauri v1 and v2**. But I'm still testing them with Tauri v2 at the moment.\n\n- [`debian-bookworm-22`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/debian-bookworm-22.Dockerfile)\n  - Base: [`rust:1-bookworm`](https://hub.docker.com/_/rust)\n  - Debian v12 (\"bookworm\") + Rust v1 + Node v22\n- [`debian-bookworm-22-nightly`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/debian-bookworm-22-nightly.Dockerfile)\n  - Base: [`rust:1-bookworm`](https://hub.docker.com/_/rust)\n  - Debian v12 (\"bookworm\") + Rust v1 (nightly) + Node v22\n- [`debian-bookworm-20`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/debian-bookworm-20.Dockerfile)\n  - Base: [`rust:1-bookworm`](https://hub.docker.com/_/rust)\n  - Debian v12 (\"bookworm\") + Rust v1 + Node v20\n- [`debian-bookworm-20-nightly`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/debian-bookworm-20-nightly.Dockerfile)\n  - Base: [`rust:1-bookworm`](https://hub.docker.com/_/rust)\n  - Debian v12 (\"bookworm\") + Rust v1 (nightly) + Node v20\n\n### Debian v11 (\"bullseye\")\n\n\u003e [!IMPORTANT]  \n\u003e These tags only work with **Tauri v1**. See [tauri-apps/tauri#9039](https://github.com/tauri-apps/tauri/issues/9039).\n\n- [`debian-bullseye-22`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/debian-bullseye-22.Dockerfile)\n  - Base: [`rust:1-bullseye`](https://hub.docker.com/_/rust)\n  - Debian v11 (\"bullseye\") + Rust v1 + Node v22\n- [`debian-bullseye-22-nightly`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/debian-bullseye-22-nightly.Dockerfile)\n  - Base: [`rust:1-bullseye`](https://hub.docker.com/_/rust)\n  - Debian v11 (\"bullseye\") + Rust v1 (nightly) + Node v22\n- [`debian-bullseye-20`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/debian-bullseye-20.Dockerfile)\n  - Base: [`rust:1-bullseye`](https://hub.docker.com/_/rust)\n  - Debian v11 (\"bullseye\") + Rust v1 + Node v20\n- [`debian-bullseye-20-nightly`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/debian-bullseye-20-nightly.Dockerfile)\n  - Base: [`rust:1-bullseye`](https://hub.docker.com/_/rust)\n  - Debian v11 (\"bullseye\") + Rust v1 (nightly) + Node v20\n\n### Fedora v40\n\n\u003e [!NOTE]  \n\u003e These tags only work with **Tauri v2**. But I'm still testing them at the moment.\n\n- [`fedora-40`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/fedora-40.Dockerfile)\n  - Base: [`fedora:40`](https://hub.docker.com/_/fedora)\n  - Debian v12 (\"bookworm\") + Rust v1 + Node v22\n- [`fedora-40-nightly`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/fedora-40-nightly.Dockerfile)\n  - Base: [`fedora:40`](https://hub.docker.com/_/fedora)\n  - Debian v12 (\"bookworm\") + Rust v1 (nightly) + Node v22\n- [`fedora-40`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/fedora-40.Dockerfile)\n  - Base: [`fedora:40`](https://hub.docker.com/_/fedora)\n  - Debian v12 (\"bookworm\") + Rust v1 + Node v20\n- [`fedora-40-nightly`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/fedora-40-nightly.Dockerfile)\n  - Base: [`fedora:40`](https://hub.docker.com/_/fedora)\n  - Debian v12 (\"bookworm\") + Rust v1 (nightly) + Node v20\n\n### Legacy tags\n\nThese tags exist but their image is not updated anymore.\n\n- [`debian-bookworm-18`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/legacy/debian-bookworm-18.Dockerfile)\n- [`debian-bookworm-18-nightly`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/legacy/debian-bookworm-18-nightly.Dockerfile)\n- [`debian-bullseye-18`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/legacy/debian-bullseye-18.Dockerfile)\n- [`debian-bullseye-18-nightly`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/legacy/debian-bullseye-18-nightly.Dockerfile)\n- [`fedora-37-20`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/legacy/fedora-37-20.Dockerfile)\n- [`fedora-37-20-nightly`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/legacy/fedora-37-20-nightly.Dockerfile)\n- [`fedora-37-18`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/legacy/fedora-37-18.Dockerfile)\n- [`fedora-37-18-nightly`](https://github.com/ivangabriele/docker-tauri/blob/main/dockerfiles/legacy/fedora-37-18-nightly.Dockerfile)\n\n## E2E Testing\n\n### WebDriverIO\n\nSince `tauri-driver` is available as a global command in this image, you can use it as is in `wdio.config.js`\n([see documentation](https://tauri.app/v1/guides/testing/webdriver/example/webdriverio#config)):\n\n```js\n// ...\n\nconst config = {\n  // ...\n\n  beforeSession: () =\u003e {\n    // =\u003e No need for that: `path.resolve(os.homedir(), '.cargo', 'bin', 'tauri-driver')`\n    tauriDriver = spawn(\"tauri-driver\", [], {\n      stdio: [null, process.stdout, process.stderr],\n    });\n  },\n\n  // ...\n};\n\n// ...\n```\n\n## Continuous Integration\n\n### Github Actions\n\nExample:\n\n```yml\njobs:\n  core_unit_test:\n    name: Core Unit Test\n    runs-on: ubuntu-latest\n    container:\n      image: ivangabriele/tauri:debian-bullseye-18\n      # This is REQUIRED if you use `tarpaulin`\n      # https://github.com/xd009642/tarpaulin/issues/146\n      # https://github.com/xd009642/tarpaulin#github-actions\n      options: --security-opt seccomp=unconfined\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n      - name: Run\n        run: cargo test\n        working-directory: ./src-tauri\n      # https://github.com/xd009642/tarpaulin#github-actions\n      - name: Generate Coverage\n        run: cargo tarpaulin --all-features --out Xml --timeout 120 --verbose\n        working-directory: ./src-tauri\n      # Add any other step here to upload your coverage somewhere\n\n  e2e_test:\n    name: E2E Test\n    runs-on: ubuntu-latest\n    container:\n      image: ivangabriele/tauri:debian-bullseye-18\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n      - name: Install Node.js dependencies\n        run: yarn --frozen-lockfile # or `npm ci`\n      - name: Build\n        # Add your core + webview build command(s)\n        run: ...\n      # I recommend using `nick-fields/retry@v2` action here\n      # with a `fuser -n tcp -k 4445` command to kill the process using (likely Selenium)\n      # since WebdriverIO often hangs out during the first run (unable to connect)\n      - name: Run tests\n        uses: nick-fields/retry@v2\n        with:\n          timeout_seconds: 600\n          max_attempts: 3\n          retry_on: error\n          # https://tauri.app/v1/guides/testing/webdriver/ci\n          command: |\n            fuser -n tcp -k 4445\n            xvfb-run wdio run ./configs/wdio.config.js\n```\n\n## Roadmap\n\nExcepted Ubuntu, all those planned distributions are a maybe for now.\n\n- Arch\n- Fedora 38\n- NixOS\n- openSUSE\n- Ubuntu 22\n\n## Contribute\n\n`X` is the OS name + version (one of `debian-bookworm`, `debian-bullseye`, `fedora-37`).  \n`y` is the Node.js tag (one of `18`, `20`).  \n`Z` is the Rust variant (`-nightly` or nothing).\n\n### Prerequisites\n\n- Docker ([Desktop](https://docs.docker.com/desktop/) or [Engine](https://docs.docker.com/engine/install/))\n- [Node.js](https://nodejs.org) _if you want to run the tests_\n\n### Build\n\n```sh\nDOCKER_CONTAINER_NAME=[DOCKER_TAG] make build\n```\n\nExample: `DOCKER_CONTAINER_NAME=debian-bullseye-18 make build`\n\n### Run\n\n```sh\nDOCKER_CONTAINER_NAME=[DOCKER_TAG] make run\n```\n\nExample: `DOCKER_CONTAINER_NAME=debian-bullseye-18 make run`\n\n### Test\n\nYou need to have [Node.js][link-nodejs] installed in order to run the tests:\n\n```sh\nDOCKER_CONTAINER_NAME=[DOCKER_TAG] make test\n```\n\nExample: `DOCKER_CONTAINER_NAME=debian-bullseye-18 make test`.\n\n---\n\n[img-docker]: https://img.shields.io/docker/pulls/ivangabriele/tauri?style=for-the-badge\n[img-github-actions]: https://img.shields.io/github/actions/workflow/status/ivangabriele/docker-tauri/main.yml?branch=main\u0026label=Build%2BTest\u0026style=for-the-badge\n[link-docker]: https://hub.docker.com/r/ivangabriele/tauri\n[link-fuser]: https://man7.org/linux/man-pages/man1/fuser.1.html\n[link-github-actions]: https://github.com/ivangabriele/docker-tauri/actions/workflows/main.yml\n[link-nodejs]: https://nodejs.org\n[link-psmisc]: https://packages.debian.org/bullseye/psmisc\n[link-rust]: https://hub.docker.com/_/rust\n[link-rust-nightly]: https://hub.docker.com/r/rustlang/rust\n[link-tarpaulin]: https://github.com/xd009642/tarpaulin#readme\n[link-tauri]: https://tauri.app\n[link-tauri-driver]: https://crates.io/crates/tauri-driver\n[link-webdriver]: https://www.w3.org/TR/webdriver/\n[link-webdriverio]: https://webdriver.io\n[link-yarn]: https://yarnpkg.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivangabriele%2Fdocker-tauri","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivangabriele%2Fdocker-tauri","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivangabriele%2Fdocker-tauri/lists"}