No description
- Dockerfile 82%
- Shell 18%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| docker | ||
| third_party | ||
| .dockerignore | ||
| Dockerfile | ||
| README.md | ||
Sub-Store Docker Umbrella Repo
This repository vendors the upstream source trees as Git subtrees so you can build a Sub-Store stack from source instead of relying on opaque prebuilt images.
Layout
third_party/Sub-Store: backend sourcethird_party/Sub-Store-Front-End: frontend sourcethird_party/http-meta: HTTP-META sourcethird_party/mihomo: Mihomo core source on theMetabranchthird_party/shoutrrr: push notification CLI source
Initialize
Fresh clone:
git clone <this-repo-url>
cd sub-store-docker
No extra submodule step is required. The third_party/* directories are tracked directly in this repo.
Imported Revisions
Sub-Store:a8afff161aad914ea949cf5dd93502cb7d0b34ddSub-Store-Front-End:45a70952edeffb048dbfa7ec4155f2197d8f639dhttp-meta:e339aa7a3a5b9b95c7c5f66f876c5547452df065mihomo(Metabranch):97c526f4cdd61a94defd70891b03c1365de8b816shoutrrr:262ac52fc3b2cb30d414d24f8416302a6b60d4c6
Build Strategy
The top-level Dockerfile now builds all runtime components from source:
- builds the frontend from
third_party/Sub-Store-Front-End - builds the backend from
third_party/Sub-Store - builds HTTP-META from
third_party/http-meta - builds Mihomo from
third_party/mihomo - builds
shoutrrrfromthird_party/shoutrrr - copies the final runtime artifacts into a small final image
Build
docker build -t sub-store-source .
If you want a custom version label embedded into the Mihomo binary metadata:
docker build \
--build-arg MIHOMO_BUILD_VERSION=<label> \
-t sub-store-source .
Run
docker run --rm -p 3001:3001 -v sub-store-data:/opt/app/data sub-store-source
Container ports:
3001: Sub-Store frontend3000: backend API9876: HTTP-META API
Runtime Notes
- This Dockerfile builds
Sub-Store,Sub-Store-Front-End,http-meta,mihomo, andshoutrrrfrom the vendored subtree sources underthird_party/. - No GitHub release assets are fetched during the Docker build anymore.
- The build still depends on external package registries and base images: npm/pnpm for the Node projects, Go modules for the Go projects, and the upstream Docker base images.
Updating Upstream Code
Each vendored dependency can be updated with git subtree pull --prefix=<path> <repo-url> <ref> --squash.
Examples:
git subtree pull --prefix=third_party/Sub-Store https://github.com/sub-store-org/Sub-Store master --squash
git subtree pull --prefix=third_party/mihomo https://github.com/MetaCubeX/mihomo Meta --squash