Monopoly / Dockerfile
Haruka041
fix(backup): upload dataset via HF API to bypass xet rejection
678e7a3
FROM node:16-bullseye AS source
WORKDIR /app
COPY . .
FROM source AS web-build
WORKDIR /app
ENV NODE_OPTIONS=--max_old_space_size=4096
ENV NPM_CONFIG_AUDIT=false
ENV NPM_CONFIG_FUND=false
RUN npm config set registry https://registry.npmjs.org/
RUN cd /app/fatpaper-login && npm install --legacy-peer-deps && npm run build
RUN cd /app/monopoly-client && npm install --legacy-peer-deps && npm run build
RUN cd /app/monopoly-admin && npm install --legacy-peer-deps && npm run build
FROM node:16-bullseye
WORKDIR /app
ENV DEBIAN_FRONTEND=noninteractive
ENV NODE_ENV=production
RUN apt-get update && apt-get install -y --no-install-recommends \
nginx mariadb-server curl ca-certificates git zip unzip \
python3 python3-pip \
&& rm -rf /var/lib/apt/lists/*
RUN python3 -m pip install --no-cache-dir --disable-pip-version-check huggingface_hub
COPY --from=source /app /app
RUN cd /app/fatpaper-user-server && npm install --include=dev --legacy-peer-deps
RUN cd /app/monopoly-server && npm install --include=dev --legacy-peer-deps
RUN cd /app/fatpaper-user-server && npx tsc
RUN cd /app/monopoly-server && npx tsc
RUN rm -rf /var/www/html && mkdir -p /var/www/monopoly-client /var/www/81 /var/www/82
COPY --from=web-build /app/monopoly-client/dist /var/www/monopoly-client
COPY --from=web-build /app/fatpaper-login/dist /var/www/81
COPY --from=web-build /app/monopoly-admin/dist /var/www/82
COPY --from=source /app/conf/nginx.space.conf /etc/nginx/nginx.conf
COPY --from=source /app/start-space.sh /usr/local/bin/start-space.sh
RUN chmod +x /usr/local/bin/start-space.sh && \
mkdir -p /run/mysqld /var/lib/mysql /app/monopoly-server/public /app/fatpaper-user-server/public && \
chown -R mysql:mysql /run/mysqld /var/lib/mysql
EXPOSE 7860
CMD ["/usr/local/bin/start-space.sh"]