feat: add integration overlay for Docker INT-1084#6
Conversation
There was a problem hiding this comment.
Pull request overview
This PR extends the docker-ce repack flow by bundling a Wiren Board integration overlay into the repacked docker-ce package, so controllers can install a fresh upstream Docker via apt install docker-ce while automatically applying WB-specific persistent storage and service startup setup.
Changes:
- Enhanced
repack/repack-docker-ce.shto inject an overlay intodocker-ceonly, regenerateDEBIAN/md5sumsfor added files, and add a hard dependency ondocker-compose-plugin. - Added an overlay tree containing
wb-docker-setupboot-time script, adaemon.jsontemplate, and systemd units/drop-ins to ensure/mnt/dataand setup run before Docker/containerd. - Updated
README.mdto describe the new “single-command install” behavior and the overlay contents.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| repack/repack-docker-ce.sh | Injects WB overlay into docker-ce during repack and appends compose-plugin dependency. |
| repack/overlay/usr/share/wb-docker/daemon.json | Adds default daemon.json template pointing Docker data-root to /mnt/data. |
| repack/overlay/usr/lib/wb-docker/wb-docker-setup.sh | Adds idempotent boot-time setup script for persistent dirs/symlinks, daemon.json seeding, and iptables backend pinning. |
| repack/overlay/lib/systemd/system/wb-docker-setup.service | Adds oneshot unit to run WB Docker setup before docker/containerd. |
| repack/overlay/lib/systemd/system/docker.service.d/10-wb-mountdata.conf | Adds docker.service drop-in to require /mnt/data and wb-docker-setup.service. |
| repack/overlay/lib/systemd/system/containerd.service.d/10-wb-mountdata.conf | Adds containerd.service drop-in to require /mnt/data and wb-docker-setup.service. |
| README.md | Updates documentation for the new packaging/install behavior and repo structure. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| release_needs_legacy_iptables || { | ||
| log "iptables: release does not need legacy backend — skipping" | ||
| : > "$IPTABLES_MARKER" # still write marker, so we don't re-check repeatedly | ||
| return 0 | ||
| } |
74c33cc to
cb0543a
Compare
137b20d to
ce84889
Compare
ce84889 to
6171dfc
Compare
The repo-root artifacts/ folder is used for local upgrade-test runners and other transient test material that should not ship with the package. Mirrors the existing doc/ ignore for the same reason.
Align the overlay branch with the new repack model: docker-ce is the only package the build script touches — it gets the WB overlay tree, the WB postinst snippet, the docker-compose-plugin Depends, and the +wb100 Version suffix, then is repacked with dpkg-deb. The three sibling packages (docker-ce-cli, containerd.io, docker-compose-plugin) are now copied as-is from src/ into artifacts/ under their upstream filenames and versions. They keep byte-identical upstream contents and live next to docker-ce in the WB apt repo only so apt can resolve docker-ce's strict Depends from a single source. Tying the version-bump and the integration overlay to the same single package removes the previously bogus WB suffix on the other three, where we never modified contents and would have to re-run the repack on every upstream bump for no gain.
vitalii-wb
left a comment
There was a problem hiding this comment.
Посмотрел - лайк
Глянь коменты - поправь и можно вливать
| esac | ||
| } | ||
|
|
||
| if release_needs_legacy_iptables; then |
There was a problem hiding this comment.
на сколько понял - тут есть настройки для корректной работы в постинст - но нет никаких откатов состояния в postrm или что то вроде этого
Если это сделано сознательно - то желательно отметить в ридми и/или в коде тут где-то рядом
Вроде этот момент описан в гугл доке
https://docs.google.com/document/d/1SS1GXR9tSsovYjIU3ILNvEqS7ZJKOOznjiLtqoGcz34/edit?tab=t.0
но он по идее тут рядом с кодом где то должен быть описан
| Расширенный документ по архитектуре, всем edge-cases и плану работ лежит | ||
| в Google Drive: | ||
|
|
||
| [Перепаковка Docker для Wiren Board](https://docs.google.com/document/d/1SS1GXR9tSsovYjIU3ILNvEqS7ZJKOOznjiLtqoGcz34/edit?tab=t.0) |
There was a problem hiding this comment.
Этот файл в гугл доке - по идее должен содержать пункты перепаковки, условно быть краткой инструкцией по перепаковке. Отвечать на вопрос - как нам новую версию закинуть в аптли перепаковав ее. (на 1, максимум на 2 страницы). Потом ее надо будет утвердить.
https://docs.google.com/document/d/1SS1GXR9tSsovYjIU3ILNvEqS7ZJKOOznjiLtqoGcz34/edit?tab=t.0
- Часть про код желательно в этот репо переместить
- Описания про причины принятия решений (полезный текст) - перенести в файл проекта
| (например, `5:29.5.2-1~debian.11~bullseye+wb100`). Остальные три пакета | ||
| кладутся в WB-репо как есть с download.docker.com — побайтово upstream, | ||
| тот же `Version`, то же имя файла. Они нужны рядом с `docker-ce` только | ||
| чтобы apt разрешал его строгие `Depends:` из одного источника. |
There was a problem hiding this comment.
для версионирования можно отдельный заголовок добавить - важная часть
| чтобы apt разрешал его строгие `Depends:` из одного источника. | ||
|
|
||
| ## Структура репозитория | ||
|
|
There was a problem hiding this comment.
тут бы одно предложение про то что за папка такая repack и что внутри лежит. А ниже уже пофайлово хорошо описано.
Мол вот в корне лежит папка репак, она содержит ....
Сейчас не совсем понятно для чего в корне папка которая содержит другие папки - но может я не понял ее цель просто

Что происходит; кому и зачем нужно:
INT-1084
Добавлены скрипты в переупаковку docker-ce
Зависит от этого пиара
Что поменялось для пользователей:
Пользователь устанавливает самый свежий докер одной командой apt install docker-ce
Как проверял/а:
Сбилдил и проверил на нескольких контроллерах разной архитектуры wb7 и wb8
Проверил сценарий после обновления фитом
Проверил сценарий миграции с установки текущим скриптом