diff --git a/packages/site/Earthfile b/packages/site/Earthfile index 31bfba4768..d610b87ce2 100644 --- a/packages/site/Earthfile +++ b/packages/site/Earthfile @@ -1,95 +1,95 @@ VERSION 0.8 build: - FROM ../../+node-alpine-with-all-deps +FROM ../../+node-alpine-with-all-deps - ARG --required ANON_KEY - ARG --required API_URL - ARG --required STRAPI_KEY - ARG --required STRAPI_URL - ARG --required AXEPTIO_ID - ARG --required PANIER_URL +ARG --required ANON_KEY +ARG --required API_URL +ARG --required STRAPI_KEY +ARG --required STRAPI_URL +ARG --required AXEPTIO_ID +ARG --required PANIER_URL - COPY . ./packages/site +COPY . ./packages/site - # Disable telemetry during build - ENV NEXT_TELEMETRY_DISABLED=1 +# Disable telemetry during build +ENV NEXT_TELEMETRY_DISABLED=1 - ENV NEXT_PUBLIC_STRAPI_KEY=$STRAPI_KEY - ENV NEXT_PUBLIC_STRAPI_URL=$STRAPI_URL - ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$ANON_KEY - ENV NEXT_PUBLIC_SUPABASE_URL=$API_URL - ENV NEXT_PUBLIC_POSTHOG_HOST=$POSTHOG_HOST - ENV NEXT_PUBLIC_POSTHOG_KEY=$POSTHOG_KEY - ENV NEXT_PUBLIC_AXEPTIO_ID=$AXEPTIO_ID - ENV NEXT_PUBLIC_CRISP_WEBSITE_ID=$CRISP_WEBSITE_ID - ENV NEXT_PUBLIC_PANIER_URL=$PANIER_URL +ENV NEXT_PUBLIC_STRAPI_KEY=$STRAPI_KEY +ENV NEXT_PUBLIC_STRAPI_URL=$STRAPI_URL +ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$ANON_KEY +ENV NEXT_PUBLIC_SUPABASE_URL=$API_URL +ENV NEXT_PUBLIC_POSTHOG_HOST=$POSTHOG_HOST +ENV NEXT_PUBLIC_POSTHOG_KEY=$POSTHOG_KEY +ENV NEXT_PUBLIC_AXEPTIO_ID=$AXEPTIO_ID +ENV NEXT_PUBLIC_CRISP_WEBSITE_ID=$CRISP_WEBSITE_ID +ENV NEXT_PUBLIC_PANIER_URL=$PANIER_URL - RUN pnpm build:site +RUN pnpm build:site - SAVE ARTIFACT ./packages/site/.next - SAVE ARTIFACT ./packages/site/public +SAVE ARTIFACT ./packages/site/.next +SAVE ARTIFACT ./packages/site/public # See official Dockerfile at https://github.com/vercel/next.js/blob/canary/examples/with-docker/Dockerfile docker: - FROM ../../+node-alpine +FROM ../../+node-alpine - ARG --required ANON_KEY - ARG --required API_URL - ARG --required STRAPI_KEY - ARG --required STRAPI_URL - ARG --required AXEPTIO_ID - ARG --required PANIER_URL - ARG POSTHOG_HOST - ARG POSTHOG_KEY +ARG --required ANON_KEY +ARG --required API_URL +ARG --required STRAPI_KEY +ARG --required STRAPI_URL +ARG --required AXEPTIO_ID +ARG --required PANIER_URL +ARG POSTHOG_HOST +ARG POSTHOG_KEY - ENV NEXT_PUBLIC_STRAPI_KEY=$STRAPI_KEY - ENV NEXT_PUBLIC_STRAPI_URL=$STRAPI_URL - ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$ANON_KEY - ENV NEXT_PUBLIC_SUPABASE_URL=$API_URL - ENV NEXT_PUBLIC_POSTHOG_HOST=$POSTHOG_HOST - ENV NEXT_PUBLIC_POSTHOG_KEY=$POSTHOG_KEY - ENV NEXT_PUBLIC_AXEPTIO_ID=$AXEPTIO_ID - ENV NEXT_PUBLIC_CRISP_WEBSITE_ID=$CRISP_WEBSITE_ID - ENV NEXT_PUBLIC_PANIER_URL=$PANIER_URL +ENV NEXT_PUBLIC_STRAPI_KEY=$STRAPI_KEY +ENV NEXT_PUBLIC_STRAPI_URL=$STRAPI_URL +ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$ANON_KEY +ENV NEXT_PUBLIC_SUPABASE_URL=$API_URL +ENV NEXT_PUBLIC_POSTHOG_HOST=$POSTHOG_HOST +ENV NEXT_PUBLIC_POSTHOG_KEY=$POSTHOG_KEY +ENV NEXT_PUBLIC_AXEPTIO_ID=$AXEPTIO_ID +ENV NEXT_PUBLIC_CRISP_WEBSITE_ID=$CRISP_WEBSITE_ID +ENV NEXT_PUBLIC_PANIER_URL=$PANIER_URL - ARG DOCKER_IMAGE=$SITE_IMG_NAME +ARG DOCKER_IMAGE=$SITE_IMG_NAME - # ENV PUBLIC_PATH="/app/public" +# ENV PUBLIC_PATH="/app/public" - RUN addgroup --system --gid 1001 nodejs - RUN adduser --system --uid 1001 nextjs +RUN addgroup --system --gid 1001 nodejs +RUN adduser --system --uid 1001 nextjs - COPY +build/public ./public +COPY +build/public ./public - # Set the correct permission for prerender cache - RUN mkdir .next - RUN chown nextjs:nodejs .next +# Set the correct permission for prerender cache +RUN mkdir .next +RUN chown nextjs:nodejs .next - # Automatically leverage output traces to reduce docker image size - # https://nextjs.org/docs/advanced-features/output-file-tracing - COPY --chown=nextjs:nodejs +build/.next/standalone ./ - COPY --chown=nextjs:nodejs +build/.next/static ./packages/site/.next/static +# Automatically leverage output traces to reduce docker image size +# https://nextjs.org/docs/advanced-features/output-file-tracing +COPY --chown=nextjs:nodejs +build/.next/standalone ./ +COPY --chown=nextjs:nodejs +build/.next/static ./packages/site/.next/static - USER nextjs +USER nextjs - # Prepare the app for production - ENV NEXT_TELEMETRY_DISABLED=1 - ENV HOSTNAME="0.0.0.0" - ENV NODE_ENV production +# Prepare the app for production +ENV NEXT_TELEMETRY_DISABLED=1 +ENV HOSTNAME="0.0.0.0" +ENV NODE_ENV production - ENV PORT=3000 - EXPOSE 3000 +ENV PORT=3000 +EXPOSE 3000 - # server.js is created by next build from the standalone output - # https://nextjs.org/docs/pages/api-reference/next-config-js/output - CMD ["node", "packages/site/server.js"] +# server.js is created by next build from the standalone output +# https://nextjs.org/docs/pages/api-reference/next-config-js/output +CMD ["node", "packages/site/server.js"] - SAVE IMAGE --push $DOCKER_IMAGE +SAVE IMAGE --push $DOCKER_IMAGE deploy: - ARG --required KOYEB_API_KEY - FROM ../../+koyeb --KOYEB_API_KEY=$KOYEB_API_KEY - RUN ./koyeb services update $ENV_NAME-site/front --docker $SITE_IMG_NAME +ARG --required KOYEB_API_KEY +FROM ../../+koyeb --KOYEB_API_KEY=$KOYEB_API_KEY +RUN ./koyeb services update $ENV_NAME-site/front --docker $SITE_IMG_NAME