@@ -56,6 +56,12 @@ RUN rm -rf node_modules && yarn workspaces focus @hyperdx/api --production
5656# prod ############################################################################################
5757FROM node:${NODE_VERSION}-alpine AS prod
5858
59+ LABEL org.opencontainers.image.vendor="HyperDX" \
60+ org.opencontainers.image.title="HyperDX Production" \
61+ org.opencontainers.image.description="HyperDX production image with API and App services" \
62+ org.opencontainers.image.source="https://github.com/hyperdx/hyperdx" \
63+ org.opencontainers.image.licenses="MIT"
64+
5965ARG CODE_VERSION
6066
6167ENV CODE_VERSION=$CODE_VERSION
@@ -78,6 +84,10 @@ COPY --chown=node:node --from=builder /app/packages/app/public ./packages/app/pa
7884
7985# Set up start script
8086COPY --chown=node:node --from=hyperdx ./entry.prod.sh /etc/local/entry.sh
87+
88+ HEALTHCHECK --interval=30s --timeout=5s --start-period=30s --retries=3 \
89+ CMD node -e "require('http').get('http://localhost:8000/health',r=>r.statusCode===200?process.exit(0):process.exit(1)).on('error',()=>process.exit(1))"
90+
8191ENTRYPOINT ["sh" , "/etc/local/entry.sh" ]
8292
8393# all-in-one base ############################################################################################
@@ -142,11 +152,33 @@ EXPOSE 8080 4317 4318 13133 8123 9000
142152
143153# all-in-one no auth ############################################################################################
144154FROM all-in-one-base AS all-in-one-noauth
155+
156+ LABEL org.opencontainers.image.vendor="HyperDX" \
157+ org.opencontainers.image.title="HyperDX All-in-One (No Auth)" \
158+ org.opencontainers.image.description="HyperDX all-in-one image with ClickHouse, MongoDB, and OTel Collector (no authentication)" \
159+ org.opencontainers.image.source="https://github.com/hyperdx/hyperdx" \
160+ org.opencontainers.image.licenses="MIT"
161+
145162COPY --from=hyperdx ./entry.local.noauth.sh /etc/local/entry.sh
163+
164+ HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 \
165+ CMD curl -f http://localhost:8080/api/health || exit 1
166+
146167ENTRYPOINT ["sh" , "/etc/local/entry.sh" ]
147168
148169# all-in-one with auth ############################################################################################
149170FROM all-in-one-base AS all-in-one-auth
171+
172+ LABEL org.opencontainers.image.vendor="HyperDX" \
173+ org.opencontainers.image.title="HyperDX All-in-One (With Auth)" \
174+ org.opencontainers.image.description="HyperDX all-in-one image with ClickHouse, MongoDB, and OTel Collector (with authentication)" \
175+ org.opencontainers.image.source="https://github.com/hyperdx/hyperdx" \
176+ org.opencontainers.image.licenses="MIT"
177+
150178COPY --from=hyperdx ./entry.local.auth.sh /etc/local/entry.sh
179+
180+ HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 \
181+ CMD curl -f http://localhost:8080/api/health || exit 1
182+
151183ENTRYPOINT ["sh" , "/etc/local/entry.sh" ]
152184
0 commit comments