mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 02:14:01 +00:00
fix(docker): let SELinux hosts read the bind-mounted checkout (#1391)
Allow the Docker checkout bind mount on SELinux hosts. Contribution by @anilguvenc.
This commit is contained in:
1 parent
76311e36d4
commit
2a17491c8b
5 files changed
+15
-1
No files matched your search
@@ -207,6 +207,8 @@ env UID=1026 GID=100 docker compose up -d
|
||||
|
||||
Keep the `env`: bash treats `UID` as read-only, so a plain `UID=1026` in front of a command is silently ignored. If the container can't write the checkout, it says so at start. Docker Desktop on macOS and Windows maps ownership for you.
|
||||
|
||||
On SELinux hosts (Fedora, RHEL), compose mounts the checkout with `:z` so the container may read it; Docker may relabel the checkout for container access, which can take a moment on a large checkout. Without that, the start fails with `Cannot find module '/app/scripts/docker-start.mjs'`.
|
||||
|
||||
Behind a reverse proxy, put your keys in `.env` or pass them as environment variables - Provider Settings refuses proxied requests on purpose - and add the hostname you serve it on, for example `GEV_ALLOWED_HOSTS=globe.example.lan` (see [Sharing an instance](#-sharing-an-instance)).
|
||||
|
||||
</details>
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
- Start the Docker install on SELinux hosts such as Fedora and RHEL. Compose now
|
||||
mounts the checkout with `:z`; without it the container could not read `/app`
|
||||
and stopped with "Cannot find module '/app/scripts/docker-start.mjs'"
|
||||
(Anıl Güvenç, @anilguvenc, #1391).
|
||||
+4
-1
@@ -22,5 +22,8 @@ services:
|
||||
# UI land in the .env on your host instead of vanishing with the
|
||||
# container. node_modules stays in the image: sharp and friends are
|
||||
# compiled for Linux and must not be shadowed by a host install.
|
||||
- .:/app
|
||||
# `:z` relabels the checkout for containers on SELinux hosts (Fedora,
|
||||
# RHEL); without it the container cannot read /app at all and Node
|
||||
# reports the launcher as "Cannot find module". Elsewhere it is ignored.
|
||||
- .:/app:z
|
||||
- /app/node_modules
|
||||
@@ -1,5 +1,9 @@
|
||||
# God's Eye View Current State
|
||||
|
||||
Docker Compose mounts the checkout with the shared SELinux `:z` label so
|
||||
containers can read it on enforcing SELinux hosts. The separate image-owned
|
||||
`node_modules` volume and loopback-only port publishing remain unchanged.
|
||||
|
||||
Aircraft detection candidates reuse normalized display text until callsign or
|
||||
registration changes, including in-place enrichment. Each candidate resolves its
|
||||
fleet model once per collection. Positions, model ownership and tracked-aircraft
|
||||
|
||||
@@ -75,4 +75,5 @@ test('the Docker install path keeps its loopback-only, launcher-owned contract',
|
||||
assert.match(compose, /^\s+- GEV_KEY_SETUP_TRUSTED_PEERS$/m, 'the operator policy reaches the launcher without a hard-coded address');
|
||||
assert.match(compose, /^\s+- GEV_ALLOWED_HOSTS$/m, 'the host allowlist reaches Vite');
|
||||
assert.doesNotMatch(compose, /network_mode/, 'the container keeps its own network namespace');
|
||||
assert.match(compose, /^\s+- \.:\/app:z$/m, 'SELinux hosts can read the bind-mounted checkout');
|
||||
});
|
||||
Reference in new issue
Block a user