containerisation
parent
a9d73ecd57
commit
e53ef3d9fc
@ -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"]
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
/** @type {import('next').NextConfig} */
|
||||
const nextConfig = {
|
||||
output: 'standalone',
|
||||
};
|
||||
|
||||
module.exports = nextConfig;
|
||||
Loading…
Reference in New Issue