Add Docker image publishing, recommended installation and project history - #3052
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Make Docker the recommended server installation path and explain the repository's shadowsocks-libev history, modernization and rename to shadowsocks-c.
Add native AMD64/ARM64 image builds and GHCR publishing for
ghcr.io/shadowsocks/shadowsocks-c. The scratch runtime uses static Clang/musl binaries, runs as an unprivileged user by default, and reads a mounted JSON configuration. PRs test without publishing; master/version pushes publish architecture images and assemble the multi-platform tag only after both tests pass.Exercise actual read-only server/client containers with mounted configuration, hostname resolution, concurrent TCP streams up to 1 MiB, UDP payloads up to 4 KiB, AEAD and AEAD-2022, and clean shutdown. Update the README with TCP/UDP port mappings, configuration, version selection and a local-build fallback. Replace stale badges with current CI badges.
Validation: local ARM64 runtime build and container integration tests pass; image size is approximately 2.2 MB. All 35 local CTest cases, actionlint, Ruff and whitespace checks pass. All 24 build/test checks pass on
3f3f6bf, including native AMD64/ARM64 Docker runtime tests. The publish job is intentionally skipped for PRs.Publication starts after merge. GHCR initially creates packages as private; an administrator must make the new package Public once before anonymous pulls work. This registry setup requirement and the local-build fallback are documented in
docker/static/README.md.