chore: reduce docker image size

This commit is contained in:
Divlo 2022-12-13 11:38:24 +01:00
parent 734357b396
commit 12ceefd650
No known key found for this signature in database
GPG Key ID: 8F9478F220CE65E9
3 changed files with 23 additions and 25 deletions

View File

@ -1,23 +1,21 @@
FROM node:16.17.0 AS dependencies
FROM node:18.12.1 AS dependencies
WORKDIR /usr/src/app
COPY ./package*.json ./
RUN npm install
FROM node:16.17.0 AS builder
FROM node:18.12.1 AS builder
WORKDIR /usr/src/app
COPY ./ ./
COPY --from=dependencies /usr/src/app/node_modules ./node_modules
RUN npm run build
FROM node:16.17.0 AS runner
FROM node:18.12.1 AS runner
WORKDIR /usr/src/app
ENV NODE_ENV=production
COPY --from=builder /usr/src/app/next.config.js ./next.config.js
ENV NEXT_TELEMETRY_DISABLED=1
COPY --from=builder /usr/src/app/.next/standalone ./
COPY --from=builder /usr/src/app/.next/static ./.next/static
COPY --from=builder /usr/src/app/public ./public
COPY --from=builder /usr/src/app/.next ./.next
COPY --from=builder /usr/src/app/i18n.json ./i18n.json
COPY --from=builder /usr/src/app/locales ./locales
COPY --from=builder /usr/src/app/pages ./pages
COPY --from=builder /usr/src/app/node_modules ./node_modules
RUN npx next telemetry disable
CMD ["node_modules/.bin/next", "start", "--port", "${PORT}"]
COPY --from=builder /usr/src/app/next.config.js ./next.config.js
CMD ["node", "server.js"]

View File

@ -5,7 +5,7 @@ services:
build:
context: './'
ports:
- '${PORT}:${PORT}'
- '${PORT-3000}:${PORT-3000}'
environment:
PORT: ${PORT}
PORT: ${PORT-3000}
env_file: './.env'

View File

@ -5,16 +5,16 @@ const nextPWA = require('next-pwa')({
const nextTranslate = require('next-translate')
/** @type {import("next").NextConfig} */
module.exports = nextTranslate(
nextPWA({
reactStrictMode: false,
images: {
domains: [
'api.thream.divlo.fr',
'thream-api.herokuapp.com',
'file-uploads-api.thream.divlo.fr',
...(process.env.NODE_ENV !== 'production' ? ['localhost'] : [])
]
}
})
)
const nextConfig = {
reactStrictMode: false,
output: 'standalone',
images: {
domains: [
'api.thream.divlo.fr',
'file-uploads-api.thream.divlo.fr',
...(process.env.NODE_ENV !== 'production' ? ['127.0.0.1'] : [])
]
}
}
module.exports = nextTranslate(nextPWA(nextConfig))