| 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"] |
|
|