Skip to content

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

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

0yi0 wants to merge 7 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, move WasmEdge image definitions and their build workflows into WasmEdge/devcontainer so they can be maintained independently.

  • Import the Docker image definitions and dependency-family scripts, .dockerignore, and the image, Alpine/Debian static, and OpenWrt workflows from WasmEdge 0.18.1 at b2e483553ea7a1826be117180125c71e5d0b8958.
  • Keep Dockerfile.*, docker-bake.*.hcl, SHA256SUM.*, and build-manylinux.sh at repository root, with Dockerfile-consumed dependency inputs under scripts/<family>/.
  • Keep the import commits faithful to the identified snapshot; required destination adaptations follow in separate commits, not under upstream authors' provenance.
  • Use the consolidated .github/workflows/docker.yml for image validation and publication.
  • Configure .devcontainer for developing WasmEdge/devcontainer, using wasmedge/wasmedge:ci-image-base and the name WasmEdge devcontainer development.

Commit organization and required adaptations

  1. feat(docker): import WasmEdge image definitions and dependencies — faithful image-definition, dependency, and build-input import. Relocate the source Docker and dependency paths into the destination layout while preserving source whitespace, executable modes, target groups, and image behavior.
  2. ci(docker): import WasmEdge image and platform workflows — faithful import of the Docker, Alpine static, Debian static, and OpenWrt workflows. Preserve their triggers, job dependencies, containers, matrices, Docker Hub login/push conditions, and conditional release uploads.
  3. ci(docker): provide release sources for standalone builds — download the WasmEdge 0.18.1 archive for static and OpenWrt workflows, provide the static source context and version marker, supply the OpenWrt source and package Makefile, and remove the unavailable C++ reusable-linter job.
  4. ci(docker): adapt imported workflows to this repository — use main for the push trigger and remove the obsolete split Ubuntu and manylinux workflows, leaving docker.yml as the consolidated image workflow.
  5. chore(devcontainer): configure repository development environment — configure the repository devcontainer to use wasmedge/wasmedge:ci-image-base.
  6. docs: document repository layout — document the repository layout.
  7. fix(ci): resolve ShellCheck findings in workflow scripts — resolve SC2046, SC2086, and SC2129 in the affected workflows.

Import commit messages identify the exact source snapshot and retain source PR/direct-commit references and original author information. Those references describe imported content, not the later destination adaptations.

Publishing

  • Pull-request runs build the images without pushing them. Non-PR runs retain the imported Docker Hub login and image-push behavior.
  • The static reusable workflows upload release assets only when called with release: true; the OpenWrt workflow is manual and is not part of the pull-request checks.
  • GHCR publishing and ownership changes are outside this PR.

Verification limits

  • The OpenWrt workflow is triggered manually and is not covered by the pull-request checks.
  • Pull-request checks do not push images to Docker Hub or upload release assets, so those publication paths are not validated here.

@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
0yi0 added 4 commits November 11, 2026 15:30
Import the Docker image definitions and dependency scripts from WasmEdge 0.18.1 at
`b2e483553ea7a1826be117180125c71e5d0b8958`.

Relocate:
- `utils/docker/` -> `.`
- `utils/ffmpeg/` -> `scripts/ffmpeg/`
- `utils/opencvmini/` -> `scripts/opencvmini/`
- `utils/wasi-crypto/` -> `scripts/wasi-crypto/`
- `utils/wasi-nn/` -> `scripts/wasi-nn/`

Snapshot: https://github.com/WasmEdge/WasmEdge/tree/b2e483553ea7a1826be117180125c71e5d0b8958

Source provenance for imported 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

Signed-off-by: Yi Huang <yi@secondstate.io>
Import the Docker, Alpine static, Debian static, and OpenWrt workflows from
WasmEdge 0.18.1 at `b2e483553ea7a1826be117180125c71e5d0b8958`.

Snapshot: https://github.com/WasmEdge/WasmEdge/tree/b2e483553ea7a1826be117180125c71e5d0b8958

Source provenance for imported image workflows:
- 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

Source provenance for imported static and OpenWrt workflows:

- 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

Signed-off-by: Yi Huang <yi@secondstate.io>
Provide the WasmEdge 0.18.1 archive to the static and OpenWrt workflows, including
its version marker and source context. Supply the OpenWrt source and package
Makefile locally, and remove the unavailable reusable C++ linter job.

Signed-off-by: Yi Huang <yi@secondstate.io>
Use `main` for the push trigger and make the imported `docker.yml` the
repository's consolidated image workflow by removing the obsolete split Ubuntu
and manylinux workflows.

Signed-off-by: Yi Huang <yi@secondstate.io>
@0yi0
0yi0 force-pushed the docker-migration-root-layout branch from 7b1f772 to 6ed44ae Compare November 11, 2026 08:51
0yi0 added 3 commits November 13, 2026 18:16
Configure the repository devcontainer to use
`wasmedge/wasmedge:ci-image-base`.

Signed-off-by: Yi Huang <yi@secondstate.io>
Signed-off-by: Yi Huang <yi@secondstate.io>
- SC2046: Quote command substitutions and preserve command argument boundaries.
- SC2086: Quote the Docker branch expansion.
- SC2129: Group GitHub output writes.

Signed-off-by: Yi Huang <yi@secondstate.io>
@0yi0
0yi0 force-pushed the docker-migration-root-layout branch 2 times, most recently from 17048d3 to 51081eb Compare November 13, 2026 13:50
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