mil-tokyo-webdnn
SUCCESS
26m 04s
History Source
SummaryIterations1Transcript25Dockerfile
Dockerfile54 lines · 1208 chars
FROM node:lts AS builder

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        python3 \
        python3-dev \
        python3-pip \
        git \
        build-essential \
        ca-certificates \
        curl && \
    ln -s /usr/bin/python3 /usr/bin/python && \
    rm -rf /var/lib/apt/lists/*

# Install Emscripten SDK to provide emcc for shader compilation
RUN mkdir -p /emsdk && \
    git clone https://github.com/emscripten-core/emsdk.git /emsdk && \
    cd /emsdk && \
    ./emsdk install latest && \
    ./emsdk activate latest

ENV PATH="/emsdk/upstream/emscripten:/emsdk:${PATH}"

WORKDIR /workspace

COPY package.json ./
RUN npm install

COPY . .

# Build steps
RUN npm run shader:wasm
RUN npm run makeShaderList
RUN npm run shader:webgpu
RUN npm run build
RUN npm run build:core

FROM node:lts
WORKDIR /workspace

# Copy built artifacts from builder
COPY --from=builder /workspace/dist /workspace/dist
COPY --from=builder /workspace/package.json /workspace/package.json

# Install runtime dependencies and http-server for serving
RUN npm install --omit=dev
RUN npm install -g http-server

EXPOSE 8080

CMD ["npm", "run", "server"]