containerisation

main
pantonshire 3 years ago
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…
Cancel
Save