FROM node:22-bookworm AS build ARG ACE_STEP_UI_COMMIT RUN test -n "$ACE_STEP_UI_COMMIT" RUN apt-get update \ && apt-get install -y --no-install-recommends git python3 make g++ \ && rm -rf /var/lib/apt/lists/* RUN git clone https://github.com/fspecii/ace-step-ui.git /src \ && cd /src \ && git checkout --detach "$ACE_STEP_UI_COMMIT" COPY patch-source.mjs /tmp/patch-source.mjs RUN node /tmp/patch-source.mjs /src RUN cd /src \ && npm ci \ && npm run build RUN cd /src/server \ && npm ci \ && npm run build \ && npm prune --omit=dev FROM node:22-bookworm-slim AS runtime RUN apt-get update \ && apt-get install -y --no-install-recommends nginx curl ca-certificates ffmpeg \ && rm -rf /var/lib/apt/lists/* COPY --from=build /src/dist /usr/share/nginx/html COPY --from=build /src/server/dist /app/server/dist COPY --from=build /src/server/node_modules /app/server/node_modules COPY --from=build /src/server/package.json /app/server/package.json COPY --from=build /src/server/public /app/server/public COPY --from=build /src/server/audio-editor /app/server/audio-editor COPY nginx.conf /etc/nginx/nginx.conf COPY entrypoint.sh /usr/local/bin/ace-step-ui-entrypoint RUN chmod 0755 /usr/local/bin/ace-step-ui-entrypoint \ && mkdir -p /data/audio /data/datasets/uploads EXPOSE 3000 3001 ENTRYPOINT ["/usr/local/bin/ace-step-ui-entrypoint"]