-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.dockerignore
More file actions
80 lines (74 loc) · 2.9 KB
/
Copy path.dockerignore
File metadata and controls
80 lines (74 loc) · 2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# What `docker build -f api/Dockerfile .` must NOT upload as build context
# (api/cloudbuild.yaml builds with the repo ROOT as the context; the app build
# has its own list in app/.dockerignore, whose context is `app`).
#
# `**/` on every generated directory, and it is not decoration. A .dockerignore
# pattern without a separator is matched against the path RELATIVE TO THE
# CONTEXT ROOT — Go's filepath.Match, not gitignore semantics — so a bare
# `node_modules` covers only a top-level one. There is none; the 451 MB sit in
# `app/node_modules`, and they travelled with every API build. Same for the
# 216 `__pycache__` directories, `app/dist`, and — the largest of them — the
# InkSight venv and weights under `tools/`, which come to 3.4 GB on a machine
# that has run route B. Measured on 2026-09-04: 339 MiB of context before,
# 44 MiB after, in a checkout WITHOUT those weights.
#
# `.gcloudignore` next to this file needs no `**/`: it uses gitignore
# semantics, where a bare name already matches at any depth. It does carry the
# same LIST of local-only payloads, though — it governs the upload, which
# happens before Docker ever reads this file.
.git
.gitignore
**/.idea
**/.vscode
.serena
.claude
# Python: environments, bytecode and tool caches, at any depth.
**/.venv
**/__pycache__
**/*.pyc
**/*.pyo
**/*.pyd
**/.pytest_cache
**/.ruff_cache
**/.mypy_cache
**/*.egg-info
# JS: installed and generated by the app build, which does not run here.
**/node_modules
**/dist
**/build
**/coverage
# Local-only payloads: every one of these is gitignored, so a CI clone never
# has them and only a build from the author's checkout pays for them — which is
# exactly the build nobody watches the numbers on. None is copied by
# api/Dockerfile. Sizes are the ones the repo's own docs quote.
#
# The InkSight route's local half — a 3.4 GB venv + checkpoint tree:
tools/inksight/weights
tools/inksight/out
# The corpora (up to 7.8 GB; only SOURCE.md and fetch_*.py are committed) and
# the NC-SA derivatives that may not mix with MIT at all:
data/corpora
data/derived/from-nc-sa
# The reserved own-hand dataset — the strips are admin-gated and must not sit
# in an image layer even by accident (quellen-und-rechte.md §5):
data/samples/own-hand
# Human-bench rounds and the two benches' fixture/run trees, all regenerable:
data/humanbench
tools/glyphbench/fixtures
tools/glyphbench/runs
tools/wordbench/fixtures
tools/wordbench/runs
runs
temp
# `.env*`, not the three names that happen to exist: .env holds DATABASE_URL
# and ADMIN_TOKEN, and a variant nobody thought of (.env.staging) fell straight
# through the old list into the build context. Same rule in .gcloudignore and
# app/.dockerignore.
**/.env*
# Not shipped by api/Dockerfile: it copies api/, core/, alembic/, data/sources/,
# app/prerender/ and two JSONs out of tools/ (the quiz seed and the frozen
# Kringel catalogue the Landmarken-Linse reads).
docs
tests
.github
MEMORY.md