Files
PhantomPtrandClaude Opus 5.5 832e2afcd2 fix(docker): the web UI image bundles the FAQ and Changelog (#337)
* fix(docker): the web UI image bundles the FAQ and Changelog

Since the FAQ and Changelog screens bundle ../FAQ.md and ../CHANGELOG.md,
the web UI image's frontend stage failed: it built the client at /src
and .dockerignore excluded every *.md. The stage now keeps the repo
layout (/repo/client) and copies the two files in.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(scripts): the audit counts a script's node:test file as used

scripts:check runs every *.test.mjs by pattern, so the test beside
stale-client-lib.mjs is named nowhere and the strict audit called it an
orphan (repo scripts failed on all three OSes).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 13:04:23 -07:00

75 lines
2.0 KiB
Plaintext

# Root-level .dockerignore. Applies to every image build — both
# engine/Dockerfile (engine only) and engine/Dockerfile.webui (full-stack
# web UI). Both use the repo root as their context, because the cargo
# workspaces patch `unrar` to the vendored copy at third_party/unrar and a
# narrower context would put that path outside it.
#
# (engine/.dockerignore is now dead for CI builds; it only applies if
# someone runs `docker build engine/` by hand.)
#
# Keeping the context small speeds up the `COPY client/ .` and `COPY
# engine/ .` steps (the build context is sent to the Docker daemon in
# full on every build) and avoids leaking local artifacts, caches, and
# development-only files into the image layer cache.
# Build outputs (rebuilt inside the image)
engine/target/
client/dist/
client/src-tauri/target/
client/src-tauri/gen/
# NOT excluded: payload/*.elf. The engine embeds these at build time
# (engine/crates/ps5upload-engine/build.rs); excluding them here silently
# produced images that could install base games but not updates (#295).
payload/ps5upload.elf.gz
# Node (installed fresh in the frontend stage)
client/node_modules/
# Version control + CI (not needed in the image)
.git/
.github/
# Docs, tests, scripts (not needed at runtime)
docs/
*.md
# …except the two the web UI bundles (its FAQ and Changelog screens).
!FAQ.md
!CHANGELOG.md
LICENSE*
# ...but keep the vendored crate whole: its licences must travel with the
# source we build from, and excluding them here would quietly drop the
# attribution that MIT/Apache-2.0 requires.
!third_party/**
tests/
coverage/
client/coverage/
# IDE + OS files
.vscode/
.idea/
.DS_Store
# Dev screenshots dropped at the repo root. They are gitignored, but a
# local stray still lands in the build context and ships bytes nobody
# asked for. Anchored, so real assets under client/ are untouched.
/*.png
/*.jpg
/*.jpeg
/*.gif
/*.webp
/*.mp4
/*.mov
!/logo.png
*.swp
*.swo
# Docker files themselves
Dockerfile*
.dockerignore
# Local env / config that should never leak into an image
.env
.env.*
*.pem
*.key