Skip to content

feat: migrate WasmEdge Docker definitions and build CI to devcontainer - #17

Draft
0yi0 wants to merge 5 commits into
mainfrom
docker-migration-root-layout
Draft

0yi0 wants to merge 5 commits into
mainfrom
docker-migration-root-layout

Conversation

@0yi0

@0yi0 0yi0 commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • As described in WasmEdge#4277, Docker images for CI and development are tightly coupled to the WasmEdge source tree, making versioning and dependency reproducibility difficult. This PR moves the Dockerfiles, related CI, and dependency scripts into WasmEdge/devcontainer so they can be maintained and versioned independently, while building source-dependent images from the pinned WasmEdge 0.18.1 release.
  • Move WasmEdge Dockerfiles, Bake definitions, dependency installers, checksums, and related development-container files into the destination repository. The final layout keeps Dockerfile.*, docker-bake.*.hcl, SHA256SUM.*, and build-manylinux.sh at the repository root, with Dockerfile-consumed source scripts under root scripts/.
  • Consolidate image validation into the destination Docker workflow with PR-safe permissions, preserved Ubuntu and manylinux architecture matrices, and publishing disabled.
  • Port Alpine/Debian static and OpenWrt builds using the pinned WasmEdge 0.18.1 release archive, producing Actions artifacts instead of release uploads.
  • Preserve source provenance directly in the three logical devcontainer migration commits; durable validation is provided by Docker/Bake resolution, image builds, and runtime smoke tests in CI.
  • Restore the Ubuntu 22.04 Kitware CMake prerequisite required by libpiper.

Scope and safety

  • WasmEdge remains read-only and unmodified.
  • No registry login, image push, or GitHub release upload is enabled.
  • The destination change is organized as 3 logical devcontainer migration commits based on origin/main: definitions/build inputs, CI workflows, and documentation.

Provenance and related discussion

Destination repository

WasmEdge migration issues

Final layout and verification

  • Root-level Dockerfile.*, docker-bake.*.hcl, checksums, build-manylinux.sh, and scripts/ paths were statically audited against all Dockerfile COPY/ADD inputs, Bake references, and workflow paths.
  • git diff --check — run as part of final validation.
  • docker buildx bake --print and actual image builds — not run because Docker is unavailable in the implementation environment.
  • actionlint — not run because it is unavailable in the implementation environment.

This contribution was developed with assistance from Codex 6.1 Sol (OpenCode).

0yi0 added 5 commits November 3, 2026 02:28
Migrate the WasmEdge 0.18.1 Docker definitions, Bake files, dependency
installers, checksums, and development-container files into the independent
devcontainer repository. Keep Dockerfiles and Bake definitions at the
repository root, and preserve the original WasmEdge root-level scripts/ path
for Dockerfile-consumed build inputs.

The migrated definitions remain self-contained and preserve the pinned release
source and existing destination image history. Migration-only validation files
are intentionally removed after their review role; durable validation belongs
in Docker/Bake CI and image smoke tests.

Source provenance for Docker definitions and build inputs:

- WasmEdge/WasmEdge#1654
  62d0ecc [WASI] Support PyTorch Backend of WASI-NN proposal (#1654),
  Gustavo Ye <jianbaiye@outlook.com>, 2022-08-22
- WasmEdge/WasmEdge#1846
  e6ca189 [WASI] Support tensorflow lite backend for WASI-NN (#1846),
  Gustavo Ye <jianbaiye@outlook.com>, 2022-10-20
- WasmEdge/WasmEdge#3629
  97dc4c8 [Misc] Update the file copyright text and lint. (#3629),
  Yi-Ying He <yiying@secondstate.io>, 2024-08-07
- WasmEdge/WasmEdge#3694
  0cd3cd9 [Docker] Add ubuntu 20.04 to bake list (#3694), Yi <yi@secondstate.io>, 2024-08-27
- WasmEdge/WasmEdge#3703
  e429173 [Docker] Apply ubuntu version from bake file (#3703), Yi <yi@secondstate.io>, 2024-08-28
- WasmEdge/WasmEdge#3786
  cf6a878 [CI] Refactor ubuntu plugins (WASI-NN) (#3786), Yi <yi@secondstate.io>, 2024-09-23
- WasmEdge/WasmEdge#3818
  5fa75ae [Plugin] Update pytorch version (#3818), LFsWang <7088579+LFsWang@users.noreply.github.com>, 2024-10-07
- WasmEdge/WasmEdge#3819
  a570bbb [Docker] Ubuntu: Fix OpenVINO apt source (#3819), Yi <yi@secondstate.io>, 2024-10-08
- WasmEdge/WasmEdge#3901
  bc8d616 [Plugin] Update pytorch version (#3901), LFsWang <7088579+LFsWang@users.noreply.github.com>, 2024-12-04
- WasmEdge/WasmEdge#3924
  365699e [Docker] Update llvm, zstd, ninja, cmake in dockerfile (#3924), Shen-Ta Hsieh(BestSteve) <ibmibmibm.tw@gmail.com>, 2024-12-29
- WasmEdge/WasmEdge#4016
  8f9208a [WASI-NN] openvino: update to 2025.0.0 (#4016), LFsWang <7088579+LFsWang@users.noreply.github.com>, 2025-02-11
- WasmEdge/WasmEdge#4032
  92e780d [WASI-NN] add dependency installer for openvino-genai (#4032), LFsWang <7088579+LFsWang@users.noreply.github.com>, 2025-03-06
- WasmEdge/WasmEdge#4080
  849c25d build(docker): install ChatTTS in ubuntu-plugins-deps for WASI-NN ChatTTS CI (#4080), PeterD1524 <53310459+PeterD1524@users.noreply.github.com>, 2025-04-12
- WasmEdge/WasmEdge#4235
  fef49e6 docker(ubuntu): simplify image names for plugins (#4235), Yi <yi@secondstate.io>, 2025-07-04
- WasmEdge/WasmEdge#4327
  db0e0cb feat(plugin): bump the dependencies of wasmedge-ffmpeg, ffmpeg to 7.1 (#4327), cmd05 <63466463+cmd05@users.noreply.github.com>, 2025-10-07
- WasmEdge/WasmEdge#4481
  a925d18 feat(docker): add libpiper to plugin-deps image, Divyansh Khatri <divyanshkhatri200102@gmail.com>, 2026-01-09
- WasmEdge/WasmEdge#4565
  92b6e44 fix(docker): build libpiper statically (#4565), Divyansh Khatri <146909065+Divyansh200102@users.noreply.github.com>, 2026-01-28
- WasmEdge/WasmEdge#5134
  135576f ci(docker): abort install-pytorch.sh when the libtorch download fails (#5134), hydai <z54981220@gmail.com>, 2026-07-08
- WasmEdge/WasmEdge#5166
  fbb566e chore: bump libtorch to the cxx11-abi 2.12.1 in the plugins-deps images (#5166), YiYing He <yiying@secondstate.io>, 2026-07-14

Direct source commits:

- WasmEdge/WasmEdge@0478664
  0478664 [Docker] install latest cmake from Kitware APT Repository for ubuntu 20.04 Kitware APT Repository: https://apt.kitware.com/, PeterD1524 <qaz246135@gmail.com>, 2024-09-22
- WasmEdge/WasmEdge@1a0fefb
  1a0fefb ci: install zstd in Linux build images for consistent cache compression, hydai <z54981220@gmail.com>, 2026-07-03
- WasmEdge/WasmEdge@2313fe9
  2313fe9 [Docker] Refactor manylinux_2_28 with docker bake, Yi Huang <yi@secondstate.io>, 2024-07-09
- WasmEdge/WasmEdge@29f883c
  29f883c [Docker] Refactor ubuntu images with docker bake, Yi Huang <yi@secondstate.io>, 2024-08-21
- WasmEdge/WasmEdge@2cfd4bb
  2cfd4bb [WASI] Refine the WASI-NN pytorch scripts, YiYing He <yi@secondstate.io>, 2022-09-14
- WasmEdge/WasmEdge@3b0ef78
  3b0ef78 [Docker] Ubuntu: Add 24.04, Yi Huang <yi@secondstate.io>, 2024-09-18
- WasmEdge/WasmEdge@6ab4830
  6ab4830 [Docker] Add aarch64 for ubuntu 20.04, Yi Huang <yi@secondstate.io>, 2024-08-29
- WasmEdge/WasmEdge@846bd73
  846bd73 chore(docker): bump the llvm from 12 to 18 on ubuntu 20.04, hydai <z54981220@gmail.com>, 2025-06-04
- WasmEdge/WasmEdge@9da7b99
  9da7b99 [Docker] Install FFmpeg 6.1 via apt on Ubuntu 24.04, Yi Huang <yi@secondstate.io>, 2024-11-04
- WasmEdge/WasmEdge@b5dc860
  b5dc860 chore: update copyright to The WasmEdge Authors, hydai <z54981220@gmail.com>, 2026-06-22
- WasmEdge/WasmEdge@c7ca431
  c7ca431 [Docker] Fix warnings for manylinux images, Yi Huang <yi@secondstate.io>, 2024-08-21
- WasmEdge/WasmEdge@cc41c24
  cc41c24 [Docker] Ubuntu: Refine for caching, Yi Huang <yi@secondstate.io>, 2024-09-12
- WasmEdge/WasmEdge@d998543
  d998543 [Docker] Ubuntu: Add plugin dependencies, Yi Huang <yi@secondstate.io>, 2024-09-12
- WasmEdge/WasmEdge@eaf8d09
  eaf8d09 [Docker] Ubuntu: Install deps to /usr/local instead of /root, Yi Huang <yi@secondstate.io>, 2024-11-05
- WasmEdge/WasmEdge@f128014
  f128014 [Docker] Ubuntu: Pre-install CUDA, Yi Huang <yi@secondstate.io>, 2024-09-24

Assisted-by: Codex 6.1 Sol (OpenCode) <support@openai.com>
Signed-off-by: Yi Huang <yi@secondstate.io>
Migrate the consolidated image validation workflow and preserve the native
x86_64/aarch64 matrices, explicit job ordering, PR-safe permissions, and
publishing-disabled behavior. Update all changed-path filters and Bake file
references for the root-level Docker layout and root-level scripts/ inputs.

Source workflow provenance:

- WasmEdge/WasmEdge@f6f4c76
  f6f4c76 refactor(ci): optimize workflows (#4544), Divyansh Khatri <146909065+Divyansh200102@users.noreply.github.com>, 2026-01-27
- WasmEdge/WasmEdge@0c84aba
  0c84aba feat(docker): add standalone alpine-base image build pipeline (#4466), Sankalp Jha <sankalp.jha9643@gmail.com>, 2025-12-24
- WasmEdge/WasmEdge@29f883c
  29f883c [Docker] Refactor ubuntu images with docker bake, Yi Huang <yi@secondstate.io>, 2024-08-21
- WasmEdge/WasmEdge@2313fe9
  2313fe9 [Docker] Refactor manylinux_2_28 with docker bake, Yi Huang <yi@secondstate.io>, 2024-07-09
- WasmEdge/WasmEdge@27df5b1
  27df5b1 [CI] Misc: Update paths, job names, and disable fail-fast for matrix, Yi Huang <yi@secondstate.io>, 2024-09-23
- WasmEdge/WasmEdge@eea9973
  eea9973 [CI] Build docker images on change, Yi Huang <yi@secondstate.io>, 2024-07-02

The migrated workflow keeps destination image tags compatible with
wasmedge/wasmedge but does not log in or push images.

Assisted-by: Codex 6.1 Sol (OpenCode) <support@openai.com>
Signed-off-by: Yi Huang <yi@secondstate.io>
Migrate the static-library and OpenWrt workflows using the root-level Docker
and Bake definitions. Build source-dependent images from the pinned WasmEdge
0.18.1 release archive, upload Actions artifacts only, use the committed
OpenWrt Dockerfile, and keep cross-repository release publication disabled
until explicitly approved.

Source workflow provenance:

- WasmEdge/WasmEdge#2666
  1bb9d52 [CI] build static library in github actions (#2666), Jorge Prendes <jorge.prendes@gmail.com>, 2023-07-20
- WasmEdge/WasmEdge#1620
  1f21045 [OpenWrt] Build WasmEdge for OpenWrt (#1620), O3Ol <564429983@qq.com>, 2022-07-21
- WasmEdge/WasmEdge@9900ce6
  9900ce6 [CI] Fix version for alpine static and debian static, Yi Huang <yi@secondstate.io>, 2025-01-20
- WasmEdge/WasmEdge@5cb30cf
  5cb30cf fix(ci): update SOVERSION for openwrt build (#4792), Yi-Ying He <yiying@secondstate.io>, 2026-04-15
- WasmEdge/WasmEdge@f8093c5
  f8093c5 ci: upgrade Debian static build to Bookworm (#5333), Shen-Ta Hsieh(BestSteve) <ibmibmibm.tw@gmail.com>, 2026-09-09

The Jammy Kitware CMake prerequisite required by libpiper is retained. Release
and registry publication remain explicitly unavailable until destination
ownership and credentials are approved.

Assisted-by: Codex 6.1 Sol (OpenCode) <support@openai.com>
Signed-off-by: Yi Huang <yi@secondstate.io>
Document the final root-level Dockerfile, Bake, checksum, and scripts/ layout,
local Bake resolution, image families, source-dependent workflows, artifact
boundaries, and publishing restrictions. Remove migration-only validation
instructions from the public README.

Source provenance:

- WasmEdge/WasmEdge#4277
  Splitting the Docker image building process into a new repository; discussion
  selected WasmEdge/devcontainer, 2022-08-22.
- WasmEdge/WasmEdge#5362
  WasmEdge Roadmap Discussion (Q4 / 2026); resumed the Docker split work,
  2026-09-22.
- https://github.com/nodejs/devcontainer
  Dedicated project-owned devcontainer repository precedent, reviewed 2026-11-03.
- https://github.com/python/cpython-devcontainers
  Dedicated CPython build-container repository precedent, reviewed 2026-11-03.

Assisted-by: Codex 6.1 Sol (OpenCode) <support@openai.com>
Signed-off-by: Yi Huang <yi@secondstate.io>
Quote shell substitutions, group GitHub output writes, and normalize OpenWrt workflow step indentation for Super-Linter.

Assisted-by: Codex 6.1 Sol (OpenCode) <support@openai.com>

Signed-off-by: Yi Huang <yi@secondstate.io>
@0yi0 0yi0 changed the title Migrate WasmEdge Docker definitions and build CI to devcontainer feat: migrate WasmEdge Docker definitions and build CI to devcontainer Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant