45 lines
1.3 KiB
Docker
45 lines
1.3 KiB
Docker
|
# 1. Node.js Build-Stage
|
||
|
FROM forgejo.edf-bootstrap.cx.fg1.ffm.osc.live/devfw-cicd/node:20.18.1 AS build
|
||
|
|
||
|
WORKDIR /app
|
||
|
|
||
|
COPY package*.json ./
|
||
|
COPY . .
|
||
|
|
||
|
RUN npm install -g npm@11.2.0
|
||
|
RUN npm install
|
||
|
|
||
|
#RUN npx tsc -p tsconfig.json
|
||
|
RUN npx tsc -p tsconfig.backend.json
|
||
|
RUN npx tsc -p tsconfig.frontend.json
|
||
|
|
||
|
|
||
|
### NEW # Danach:
|
||
|
RUN find dist/backend -name "*.js" -exec bash -c 'mv "$0" "${0%.js}.mjs"' {} \;
|
||
|
|
||
|
|
||
|
# 2. Rust build-Stage
|
||
|
FROM forgejo.edf-bootstrap.cx.fg1.ffm.osc.live/devfw-cicd/rust:1.74.0 AS rust-build
|
||
|
RUN cargo install iching
|
||
|
|
||
|
# 3. Final runtime
|
||
|
FROM forgejo.edf-bootstrap.cx.fg1.ffm.osc.live/devfw-cicd/node:20.18.1
|
||
|
|
||
|
WORKDIR /app
|
||
|
|
||
|
### NEW ###
|
||
|
COPY --from=build /app/node_modules ./node_modules
|
||
|
|
||
|
COPY --from=build /app/dist ./dist
|
||
|
#COPY --from=build /app/index.html ./dist/
|
||
|
COPY --from=build /app/frontend/index.html ./dist/frontend/
|
||
|
|
||
|
COPY --from=rust-build /usr/local/cargo/bin/iching /usr/local/bin/iching
|
||
|
|
||
|
RUN find dist/backend -name "*.js" -exec bash -c 'mv "$0" "${0%.js}.mjs"' {} \;
|
||
|
RUN find dist/frontend -name "*.js" -exec bash -c 'mv "$0" "${0%.js}.mjs"' {} \;
|
||
|
|
||
|
RUN node dist/backend/server.mjs &
|
||
|
|
||
|
#CMD ["npx", "http-server", "dist", "-p", "8080", "--mime", "application/javascript=js"]
|
||
|
CMD ["npx", "http-server", "dist/frontend", "-p", "8080", "--mime", "application/javascript=js"]
|