Files
myspeed/Dockerfile

42 lines
1001 B
Docker
Executable File

FROM node:20-alpine AS client-build
WORKDIR /client
COPY ./client/package*.json ./
RUN npm install --force
COPY ./client ./
RUN npm run build
FROM denoland/deno:debian AS server-build
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 make g++ nodejs npm \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /myspeed
COPY ./server /myspeed/server
COPY ./deno.json /myspeed/deno.json
RUN deno install --allow-scripts
FROM denoland/deno:debian
RUN apt-get update && apt-get install -y --no-install-recommends \
tzdata \
&& rm -rf /var/lib/apt/lists/*
ENV TZ=Etc/UTC
WORKDIR /myspeed
COPY --from=server-build /myspeed/server /myspeed/server
COPY --from=server-build /myspeed/deno.json /myspeed/deno.json
COPY --from=server-build /myspeed/node_modules /myspeed/node_modules
COPY --from=server-build /deno-dir /deno-dir
COPY --from=client-build /client/build /myspeed/build
VOLUME ["/myspeed/data"]
EXPOSE 5216
CMD ["deno", "run", "--allow-all", "server/index.js"]