Initial commit: establish deterministic rod-string solver stack.
Set up the C solver core, Node API orchestration, TS GUI workflow, and engineering documentation with cleaned repo hygiene for private Git hosting. Made-with: Cursor
This commit is contained in:
29
Dockerfile
Normal file
29
Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
||||
FROM node:20-alpine AS api-deps
|
||||
WORKDIR /app/solver-api
|
||||
COPY solver-api/package.json solver-api/package-lock.json* ./
|
||||
RUN npm install
|
||||
|
||||
FROM node:20-alpine AS gui-deps
|
||||
WORKDIR /app/gui-ts
|
||||
COPY gui-ts/package.json gui-ts/package-lock.json* ./
|
||||
RUN npm install
|
||||
|
||||
FROM alpine:3.20 AS solver-build
|
||||
RUN apk add --no-cache build-base
|
||||
WORKDIR /app
|
||||
COPY solver-c ./solver-c
|
||||
RUN SRCS="./solver-c/src/solver_common.c ./solver-c/src/json_stdin.c ./solver-c/src/trajectory.c ./solver-c/src/solver_diagnostic.c ./solver-c/src/solver.c ./solver-c/src/solver_fea.c ./solver-c/src/solver_fourier.c" \
|
||||
&& gcc -std=c99 -I./solver-c/include $$SRCS ./solver-c/src/main.c -lm -o ./solver-c/solver_main \
|
||||
&& gcc -std=c99 -I./solver-c/include $$SRCS ./solver-c/src/main_fea.c -lm -o ./solver-c/solver_fea_main \
|
||||
&& gcc -std=c99 -I./solver-c/include $$SRCS ./solver-c/tests/test_solver.c -lm -o ./solver-c/test_solver \
|
||||
&& ./solver-c/test_solver
|
||||
|
||||
FROM node:20-alpine AS ci
|
||||
WORKDIR /app
|
||||
COPY --from=solver-build /app/solver-c ./solver-c
|
||||
COPY --from=api-deps /app/solver-api/node_modules ./solver-api/node_modules
|
||||
COPY --from=gui-deps /app/gui-ts/node_modules ./gui-ts/node_modules
|
||||
COPY solver-api ./solver-api
|
||||
COPY gui-ts ./gui-ts
|
||||
COPY data ./data
|
||||
CMD ["sh", "-c", "cd /app/solver-api && npm test && cd /app/gui-ts && npm test"]
|
||||
Reference in New Issue
Block a user