mirror of
https://github.com/MetaFam/TheGame.git
synced 2026-04-24 03:00:09 -04:00
* squashing @thebeyondr's adding an image to quests 🧣 * cleaning, conglomerating, & standardizing ⚽ * properly spreading arguments & restructuring forms 🥴 * setting required pSEED to 0 in testing & switching the IPFS gateway ⛑ * printing `NODE_ENV` to double check testing setting 🔩 * `connecting` needs to be initially false to avoid a hydration error 🛶 * testing if setting `$NODE_ENV` is sufficient for configuration 🦋 * seeing if "development" works as a `NODE_ENV` for Next.js ⛳ * adding graphql retry on empty response 🥁 * consuming `NODE_ENV` in Dockerfile 🥺 * going to `APP_ENV` b/c `NODE_ENV` is unsettable 🎺 * removing printing `NEXT_PUBLIC_APP_ENV` 🦷 * making entire quest tile a link * aligned rank tag in quest details page * fix: 🐛 Add a `minWidth` to `PlayerTile` * feat: ✨ Add more accurate image preview for quests * feat: ✨ Add image to `QuestDetail` * refactor: 💬 Update `Raid/Phase III` description * UI & semantics tweaks from @luxumbra 🧞♀️ * centering short quest titles 🇪🇺 * borked the quest title centering 👹 Co-authored-by: Scott Stevenson <scott@1box.onmicrosoft.com> Co-authored-by: thebeyondr <beyondr42@gmail.com>
75 lines
2.4 KiB
Docker
75 lines
2.4 KiB
Docker
FROM node:16-slim as base
|
|
WORKDIR /usr/src/app
|
|
|
|
# Install dependencies not included in the slim image
|
|
RUN apt-get update && apt-get install -y --no-install-recommends g++ make python git ca-certificates
|
|
|
|
# Install dependencies for dev and prod
|
|
COPY package.json .
|
|
COPY lerna.json .
|
|
COPY yarn.lock .
|
|
COPY schema.graphql .
|
|
COPY tsconfig.base.json .
|
|
COPY tsconfig.json .
|
|
COPY .eslintrc.js .
|
|
COPY packages/web/*.json ./packages/web/
|
|
COPY packages/web/codegen.yml ./packages/web/
|
|
COPY packages/web/graphql ./packages/web/graphql/
|
|
COPY packages/utils/*.json ./packages/utils/
|
|
COPY packages/design-system/*.json ./packages/design-system/
|
|
|
|
RUN yarn policies set-version 1.15.2
|
|
RUN yarn install --pure-lockfile
|
|
|
|
# Dev environment doesn't run this stage or beyond
|
|
FROM base as build
|
|
|
|
# Copy source files
|
|
COPY packages/web ./packages/web/
|
|
COPY packages/utils ./packages/utils/
|
|
COPY packages/design-system ./packages/design-system/
|
|
COPY packages/@types ./packages/@types/
|
|
|
|
# Set env vars
|
|
ARG NODE_ENV=production
|
|
ARG APP_ENV=${NODE_ENV}
|
|
ARG GRAPHQL_HOST=hasura
|
|
ARG GRAPHQL_DOMAIN=onrender.com
|
|
ARG GRAPHQL_URL=https://$GRAPHQL_HOST.$GRAPHQL_DOMAIN/v1/graphql
|
|
|
|
ENV NEXT_PUBLIC_GRAPHQL_URL $GRAPHQL_URL
|
|
|
|
ARG NEXT_PUBLIC_APP_ENV=${APP_ENV}
|
|
ARG NEXT_PUBLIC_FRONTEND_URL
|
|
ARG NEXT_PUBLIC_YOUTUBE_API_KEY
|
|
ARG NEXT_PUBLIC_GA4_ID
|
|
ARG NEXT_PUBLIC_HONEYBADGER_API_KEY
|
|
ARG NEXT_PUBLIC_USERBACK_TOKEN
|
|
|
|
# Build
|
|
RUN yarn web:build
|
|
|
|
# Delete devDependencies
|
|
RUN yarn install --pure-lockfile --production --ignore-scripts --prefer-offline
|
|
|
|
# Create completely new stage including only necessary files
|
|
FROM node:16-slim as app
|
|
WORKDIR /app
|
|
|
|
# Copy necessary files into the stage
|
|
COPY --from=build /usr/src/app/package.json ./package.json
|
|
COPY --from=build /usr/src/app/node_modules ./node_modules
|
|
|
|
COPY --from=build /usr/src/app/packages/web/package.json ./packages/web/package.json
|
|
COPY --from=build /usr/src/app/packages/web/public ./packages/web/public
|
|
COPY --from=build /usr/src/app/packages/web/.next ./packages/web/.next
|
|
|
|
COPY --from=build /usr/src/app/packages/utils/package.json ./packages/utils/package.json
|
|
COPY --from=build /usr/src/app/packages/utils/dist ./packages/utils/dist
|
|
COPY --from=build /usr/src/app/packages/utils/node_modules ./packages/utils/node_modules
|
|
|
|
COPY --from=build /usr/src/app/packages/design-system/package.json ./packages/design-system/package.json
|
|
COPY --from=build /usr/src/app/packages/design-system/dist ./packages/design-system/dist
|
|
|
|
CMD ["yarn", "web", "start"]
|