fix(docker): Resolve liburing.so.2 loading error for non-root users #987

Merged
tcpipuk merged 1 commit from tom/fix-liburing into main 2025-09-07 13:43:45 +00:00
Owner

Container failed to start when running as non-root (user 1000:1000) because copied directories had restrictive 770 permissions, likely due to different umask in persistent BuildKit. Non-root users couldn't access /usr/lib to load required dynamic libraries.

Adds --chmod=755 to all COPY commands to explicitly set permissions and improves library extraction with robust lddtree processing. Also fixes workflow syntax error and removes docker/** from paths-ignore to ensure Docker changes trigger CI builds.

Container failed to start when running as non-root (user 1000:1000) because copied directories had restrictive 770 permissions, likely due to different umask in persistent BuildKit. Non-root users couldn't access /usr/lib to load required dynamic libraries. Adds `--chmod=755` to all COPY commands to explicitly set permissions and improves library extraction with robust lddtree processing. Also fixes workflow syntax error and removes `docker/**` from paths-ignore to ensure Docker changes trigger CI builds.
tcpipuk self-assigned this 2025-09-07 11:28:31 +00:00
tcpipuk force-pushed tom/fix-liburing from d7e4348234
All checks were successful
Release Docker Image / define-variables (pull_request) Successful in 22s
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m7s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m9s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 6m10s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (pull_request) Successful in 9m5s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (pull_request) Successful in 9m1s
Release Docker Image / merge (pull_request) Successful in 8s
to a9c1d165d7
All checks were successful
Release Docker Image / define-variables (pull_request) Successful in 19s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 51s
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m1s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 5m9s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (pull_request) Successful in 8m58s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (pull_request) Successful in 8m55s
Release Docker Image / merge (pull_request) Successful in 7s
2025-09-07 12:22:15 +00:00
Compare
tcpipuk changed title from fix(docker): Include liburing runtime library for io_uring support to fix(docker): Resolve liburing.so.2 loading error for non-root users 2025-09-07 12:23:37 +00:00
tcpipuk force-pushed tom/fix-liburing from a9c1d165d7
All checks were successful
Release Docker Image / define-variables (pull_request) Successful in 19s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 51s
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m1s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 5m9s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (pull_request) Successful in 8m58s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (pull_request) Successful in 8m55s
Release Docker Image / merge (pull_request) Successful in 7s
to d92da9d8e6
All checks were successful
Release Docker Image / define-variables (pull_request) Successful in 23s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 55s
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m4s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 4m42s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (pull_request) Successful in 8m7s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (pull_request) Successful in 7m53s
Release Docker Image / merge (pull_request) Successful in 7s
2025-09-07 12:38:13 +00:00
Compare
tcpipuk force-pushed tom/fix-liburing from d92da9d8e6
All checks were successful
Release Docker Image / define-variables (pull_request) Successful in 23s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 55s
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m4s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 4m42s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (pull_request) Successful in 8m7s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (pull_request) Successful in 7m53s
Release Docker Image / merge (pull_request) Successful in 7s
to 7b3055be37
Some checks failed
Release Docker Image / define-variables (pull_request) Successful in 13s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 43s
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m7s
Release Docker Image / merge (pull_request) Has been cancelled
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (pull_request) Has been cancelled
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (pull_request) Has been cancelled
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
2025-09-07 12:54:16 +00:00
Compare
tcpipuk force-pushed tom/fix-liburing from 7b3055be37
Some checks failed
Release Docker Image / define-variables (pull_request) Successful in 13s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 43s
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m7s
Release Docker Image / merge (pull_request) Has been cancelled
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (pull_request) Has been cancelled
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (pull_request) Has been cancelled
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
to 0d9a9aa388
Some checks failed
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 44s
Documentation / Build and Deploy Documentation (pull_request) Successful in 59s
Release Docker Image / define-variables (pull_request) Successful in 5s
Release Docker Image / merge (pull_request) Has been cancelled
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (pull_request) Has been cancelled
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (pull_request) Has been cancelled
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
2025-09-07 12:56:57 +00:00
Compare
tcpipuk force-pushed tom/fix-liburing from 0d9a9aa388
Some checks failed
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 44s
Documentation / Build and Deploy Documentation (pull_request) Successful in 59s
Release Docker Image / define-variables (pull_request) Successful in 5s
Release Docker Image / merge (pull_request) Has been cancelled
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (pull_request) Has been cancelled
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (pull_request) Has been cancelled
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
to 4dd1cbc803
All checks were successful
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m11s
Release Docker Image / define-variables (pull_request) Successful in 2s
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m23s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 4m10s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (pull_request) Successful in 7m12s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (pull_request) Successful in 6m29s
Release Docker Image / merge (pull_request) Successful in 6s
2025-09-07 12:58:27 +00:00
Compare
tcpipuk force-pushed tom/fix-liburing from 4dd1cbc803
All checks were successful
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m11s
Release Docker Image / define-variables (pull_request) Successful in 2s
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m23s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 4m10s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (pull_request) Successful in 7m12s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (pull_request) Successful in 6m29s
Release Docker Image / merge (pull_request) Successful in 6s
to fff9629b0f
All checks were successful
Release Docker Image / define-variables (pull_request) Successful in 12s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 42s
Documentation / Build and Deploy Documentation (pull_request) Successful in 57s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 4m22s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (pull_request) Successful in 8m17s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (pull_request) Successful in 8m4s
Release Docker Image / merge (pull_request) Successful in 7s
Documentation / Build and Deploy Documentation (push) Successful in 51s
Checks / Prek / Pre-commit & Formatting (push) Successful in 45s
Release Docker Image / define-variables (push) Successful in 8s
Checks / Prek / Clippy and Cargo Tests (push) Successful in 5m48s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Successful in 7m47s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Successful in 7m53s
Release Docker Image / merge (push) Successful in 9s
2025-09-07 13:13:26 +00:00
Compare
Author
Owner

It was fun resolving this permission issue... COPY --chmod in Docker apparently only modifies the files, not the directories, so I've added a little prepper stage between the builder and the scratch output so it can organise the files into "layers" and set the mode correctly before copying the layers into the final scratch for export.

I can confirm this has resolved the permissions issue for me, either way!

It was fun resolving this permission issue... `COPY --chmod` in Docker apparently only modifies the files, not the directories, so I've added a little `prepper` stage between the `builder` and the scratch output so it can organise the files into "layers" and set the mode correctly before copying the layers into the final scratch for export. I can confirm this has resolved the permissions issue for me, either way!
tcpipuk deleted branch tom/fix-liburing 2025-09-07 13:43:45 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
continuwuation/continuwuity!987
No description provided.