Renamed to DarkStruct
This commit is contained in:
14
Dockerfile
14
Dockerfile
@@ -1,12 +1,12 @@
|
||||
# Multi-stage build for the FileServer pipeline.
|
||||
# Multi-stage build for the DarkStruct pipeline.
|
||||
#
|
||||
# The runtime image carries only what serving needs: the Julia runtime, a depot
|
||||
# that is already instantiated *and* precompiled (so startup is load-only, no
|
||||
# compilation), exiftool, and optionally github-linguist. Nothing from the build
|
||||
# survives into it: no compilers, no package registry, no gem toolchain.
|
||||
#
|
||||
# docker build -t file-server .
|
||||
# docker build --build-arg WITH_LINGUIST=false -t file-server . # ~200MB smaller
|
||||
# docker build -t darkstruct .
|
||||
# docker build --build-arg WITH_LINGUIST=false -t darkstruct . # ~200MB smaller
|
||||
#
|
||||
# github-linguist (stage-4 programming-language detection) is the one heavy
|
||||
# optional dependency: it needs a Ruby toolchain to build rugged. It degrades
|
||||
@@ -28,19 +28,19 @@ ENV JULIA_DEPOT_PATH=/opt/julia-depot \
|
||||
WORKDIR /app
|
||||
|
||||
# Manifest-first so a source-only edit doesn't re-resolve or rebuild the whole
|
||||
# dependency tree. FileServer is its own project's root package, so Pkg insists
|
||||
# dependency tree. DarkStruct is its own project's root package, so Pkg insists
|
||||
# on a module file being there; a stub satisfies it while the (slow, rarely
|
||||
# invalidated) dependency layer is built; the real source lands below.
|
||||
COPY Project.toml Manifest.toml ./
|
||||
RUN mkdir -p src \
|
||||
&& printf 'module FileServer\nend\n' > src/FileServer.jl \
|
||||
&& printf 'module DarkStruct\nend\n' > src/DarkStruct.jl \
|
||||
&& julia --project=/app -e 'using Pkg; Pkg.instantiate(); Pkg.precompile()'
|
||||
|
||||
# Precompiling FileServer itself means the runtime image loads cached code
|
||||
# Precompiling DarkStruct itself means the runtime image loads cached code
|
||||
# instead of compiling Lux/Zygote on first request.
|
||||
COPY src/ ./src/
|
||||
RUN julia --project=/app -e 'using Pkg; Pkg.precompile()' \
|
||||
&& julia --project=/app -e 'using FileServer'
|
||||
&& julia --project=/app -e 'using DarkStruct'
|
||||
|
||||
# Everything the depot keeps for *resolving* packages is dead weight once the
|
||||
# Manifest is pinned: the registry, git clones, scratch and log dirs.
|
||||
|
||||
Reference in New Issue
Block a user