Skip to content

Commit 2063774

Browse files
authored
perf: build next app in standalone mode to cut down images size (#916)
App image: 1.29GB -> 561MB Local image: 2.23GB -> 1.5GB Ref: HDX-1803
1 parent cb4045b commit 2063774

File tree

4 files changed

+14
-8
lines changed

4 files changed

+14
-8
lines changed

.changeset/seven-taxis-agree.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"@hyperdx/common-utils": patch
3+
"@hyperdx/api": patch
4+
"@hyperdx/app": patch
5+
---
6+
7+
perf: build next app in standalone mode to cut down images size

docker/hyperdx/Dockerfile

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ COPY --from=app ./styles ./packages/app/styles
4848
COPY --from=app ./types ./packages/app/types
4949

5050
ENV NEXT_TELEMETRY_DISABLED 1
51-
ENV NEXT_OUTPUT_STANDALONE false
51+
ENV NEXT_OUTPUT_STANDALONE true
5252
ENV NEXT_PUBLIC_IS_LOCAL_MODE false
5353
RUN npx nx run-many --target=build --projects=@hyperdx/common-utils,@hyperdx/api,@hyperdx/app
54-
RUN rm -rf node_modules && yarn workspaces focus @hyperdx/api @hyperdx/app --production
54+
RUN rm -rf node_modules && yarn workspaces focus @hyperdx/api --production
5555

5656

5757
# prod ############################################################################################
@@ -73,10 +73,9 @@ COPY --chown=node:node --from=builder /app/node_modules ./node_modules
7373
COPY --chown=node:node --from=builder /app/packages/api/build ./packages/api/build
7474
COPY --chown=node:node --from=builder /app/packages/common-utils/dist ./packages/common-utils/dist
7575
COPY --chown=node:node --from=node_base /app/packages/common-utils/node_modules ./packages/common-utils/node_modules
76-
COPY --chown=node:node --from=builder /app/packages/app/public ./packages/app/public
77-
COPY --chown=node:node --from=builder /app/packages/app/.next ./packages/app/.next
78-
COPY --from=builder /app/packages/app/next.config.js ./packages/app/next.config.js
79-
COPY --from=builder /app/packages/app/package.json ./packages/app/package.json
76+
COPY --chown=node:node --from=builder /app/packages/app/.next/standalone ./packages/app
77+
COPY --chown=node:node --from=builder /app/packages/app/.next/static ./packages/app/packages/app/.next/static
78+
COPY --chown=node:node --from=builder /app/packages/app/public ./packages/app/packages/app/public
8079

8180
# Set up start script
8281
COPY --chown=node:node --from=hyperdx ./entry.prod.sh /etc/local/entry.sh

docker/hyperdx/entry.local.base.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ npx concurrently \
6262
"--kill-others" \
6363
"--names=API,APP,ALERT-TASK" \
6464
"PORT=${HYPERDX_API_PORT:-8000} HYPERDX_APP_PORT=${HYPERDX_APP_PORT:-8080} node -r ./node_modules/@hyperdx/node-opentelemetry/build/src/tracing ./packages/api/build/index.js" \
65-
"cd ./packages/app && HYPERDX_API_PORT=${HYPERDX_API_PORT:-8000} ../../node_modules/.bin/next start -p ${HYPERDX_APP_PORT:-8080}" \
65+
"cd ./packages/app/packages/app && HOSTNAME='0.0.0.0' HYPERDX_API_PORT=${HYPERDX_API_PORT:-8000} PORT=${HYPERDX_APP_PORT:-8080} node server.js" \
6666
"node -r ./node_modules/@hyperdx/node-opentelemetry/build/src/tracing ./packages/api/build/tasks/index.js check-alerts" \
6767
> /var/log/app.log 2>&1 &
6868

docker/hyperdx/entry.prod.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ npx concurrently \
1616
"--kill-others" \
1717
"--names=API,APP,ALERT-TASK" \
1818
"PORT=${HYPERDX_API_PORT:-8000} HYPERDX_APP_PORT=${HYPERDX_APP_PORT:-8080} node -r ./node_modules/@hyperdx/node-opentelemetry/build/src/tracing ./packages/api/build/index.js" \
19-
"cd ./packages/app && HYPERDX_API_PORT=${HYPERDX_API_PORT:-8000} ../../node_modules/.bin/next start -p ${HYPERDX_APP_PORT:-8080}" \
19+
"cd ./packages/app/packages/app && HOSTNAME='0.0.0.0' HYPERDX_API_PORT=${HYPERDX_API_PORT:-8000} PORT=${HYPERDX_APP_PORT:-8080} node server.js" \
2020
"node -r ./node_modules/@hyperdx/node-opentelemetry/build/src/tracing ./packages/api/build/tasks/index.js check-alerts"

0 commit comments

Comments
 (0)