33# See https://github.com/lenra-io/dofigen
44
55# install
6- FROM node@sha256:b31e7a42fdf8b8aa5f5ed477c72d694301273f1069c5a2f71d53c6482e99a2fc AS install
6+ FROM node@sha256:242549cd46785b480c832479a730f4f2a20865d61ea2e404fdb2a5c3d3b73ecf AS install
77LABEL \
8- org.opencontainers.image.base.digest="sha256:b31e7a42fdf8b8aa5f5ed477c72d694301273f1069c5a2f71d53c6482e99a2fc " \
8+ org.opencontainers.image.base.digest="sha256:242549cd46785b480c832479a730f4f2a20865d61ea2e404fdb2a5c3d3b73ecf " \
99 org.opencontainers.image.base.name="docker.io/node:24-slim" \
1010 org.opencontainers.image.stage="install"
1111WORKDIR /app/
@@ -48,14 +48,14 @@ RUN \
4848 --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
4949 <<EOF
5050corepack enable pnpm
51- pnpm install --prod --frozen-lockfile --filter=@openstatus/server... -- verbose
51+ pnpm install --prod --frozen-lockfile --verbose
5252EOF
5353
5454# build
55- FROM denoland/deno @sha256:8d24854de78a79c56e74b49aa4c5996c60e1fe3730efba8fbdd2692c582e6e29 AS build
55+ FROM oven/bun @sha256:0733e50325078969732ebe3b15ce4c4be5082f18c4ac1a0f0ca4839c2e4e42a7 AS build
5656LABEL \
57- org.opencontainers.image.base.digest="sha256:8d24854de78a79c56e74b49aa4c5996c60e1fe3730efba8fbdd2692c582e6e29 " \
58- org.opencontainers.image.base.name="docker.io/denoland/deno:2.9.0 " \
57+ org.opencontainers.image.base.digest="sha256:0733e50325078969732ebe3b15ce4c4be5082f18c4ac1a0f0ca4839c2e4e42a7 " \
58+ org.opencontainers.image.base.name="docker.io/oven/bun:1.3.11 " \
5959 org.opencontainers.image.stage="build"
6060ENV NODE_ENV="production"
6161WORKDIR /app/apps/server
@@ -74,17 +74,15 @@ COPY \
7474 --from=install \
7575 --link \
7676 "/app/packages" "/app/packages"
77- RUN <<EOF
78- deno bundle --platform=deno --minify --sloppy-imports --node-modules-dir=manual --output src/_serve.bundle.mjs src/serve.ts
79- deno compile --no-check -A --node-modules-dir=none --include static/openapi.yaml --include static/openapi-v1.json --output app src/_serve.bundle.mjs
80- EOF
77+ RUN bun build --compile --sourcemap src/index.ts --outfile=app
8178
8279# runtime
83- FROM registry.access.redhat.com/hi/curl @sha256:848b81ab5d5e55371d7193fd4f1ea7b605d14dbb039344ffad34a4c1f0d880f4 AS runtime
80+ FROM debian @sha256:cd1bc32f233a49f1b82149c9edb8ef34fb1e6c45f37211445c51a97603468604 AS runtime
8481LABEL \
8582 io.dofigen.version="2.8.0" \
8683 org.opencontainers.image.authors="OpenStatus Team" \
87- org.opencontainers.image.base.digest="sha256:848b81ab5d5e55371d7193fd4f1ea7b605d14dbb039344ffad34a4c1f0d880f4" \
84+ org.opencontainers.image.base.digest="sha256:cd1bc32f233a49f1b82149c9edb8ef34fb1e6c45f37211445c51a97603468604" \
85+ org.opencontainers.image.base.name="docker.io/debian:bullseye-slim" \
8886 org.opencontainers.image.description="REST API server with Hono framework for OpenStatus" \
8987 org.opencontainers.image.source="https://github.com/openstatusHQ/openstatus" \
9088 org.opencontainers.image.title="OpenStatus Server" \
@@ -95,12 +93,18 @@ COPY \
9593 --chmod=555 \
9694 --link \
9795 "/app/apps/server/app" "/bin/"
96+ USER 0:0
97+ RUN <<EOF
98+ apt-get update
99+ apt-get install -y --no-install-recommends curl
100+ rm -rf /var/lib/apt/lists/*
101+ EOF
98102USER 1000:1000
99103EXPOSE 3000
100104HEALTHCHECK \
101105 --interval=30s \
102106 --timeout=10s \
103107 --start-period=30s \
104108 --retries=3 \
105- CMD [ " curl" , "-f" , " http://localhost:3000/ping" ]
109+ CMD curl -f http://localhost:3000/ping || exit 1
106110ENTRYPOINT ["/bin/app" ]
0 commit comments