containerisation
This commit is contained in:
1 parent
a9d73ecd57
commit
e53ef3d9fc
2 files changed
+47
No files matched your search
+41
@@ -0,0 +1,41 @@
|
||||
FROM docker.io/library/rust:1.70-alpine AS wasm_builder
|
||||
WORKDIR /app/
|
||||
COPY utfdump/Cargo.toml utfdump/Cargo.lock ./
|
||||
COPY utfdump/lib/ ./lib/
|
||||
COPY utfdump/wasm/ ./wasm/
|
||||
COPY utfdump/bin/ ./bin/
|
||||
RUN apk update && apk add --no-cache musl-dev wasm-pack
|
||||
WORKDIR /app/wasm/
|
||||
RUN wasm-pack build --release --target web
|
||||
|
||||
FROM docker.io/library/node:20-alpine AS node
|
||||
|
||||
FROM node AS node_deps
|
||||
WORKDIR /app/
|
||||
COPY package.json package-lock.json ./
|
||||
RUN npm ci
|
||||
ENTRYPOINT /bin/sh
|
||||
|
||||
FROM node AS next_builder
|
||||
WORKDIR /app/
|
||||
COPY --from=wasm_builder /app/wasm/pkg/ ./wasm/utfdump/
|
||||
COPY --from=node_deps /app/node_modules/ ./node_modules/
|
||||
COPY package.json package-lock.json docker/next.config.js next-env.d.ts tsconfig.json ./
|
||||
COPY src/ ./src/
|
||||
COPY public/ ./public/
|
||||
ENV NEXT_TELEMETRY_DISABLED 1
|
||||
RUN npm run build
|
||||
|
||||
FROM node AS runner
|
||||
WORKDIR /app
|
||||
ENV NODE_ENV production
|
||||
ENV NEXT_TELEMETRY_DISABLED 1
|
||||
RUN addgroup -g 998 -S next && adduser -G next -u 998 -S next
|
||||
COPY --from=next_builder /app/public/ ./public/
|
||||
COPY --from=next_builder --chown=next:next /app/.next/standalone/ ./
|
||||
COPY --from=next_builder --chown=next:next /app/.next/static/ ./.next/static/
|
||||
USER next
|
||||
EXPOSE 3000
|
||||
ENV PORT 3000
|
||||
CMD ["node", "server.js"]
|
||||
|
||||
Reference in new issue
Block a user