Creating a Docker container for Next.js
Let's reiterate: Docker is a virtual machine with an OS that is capable of managing containers. So, how to bring the container image to a required tools, libs and settings? Via an instruction file, of course, because this process has to be reproducible on a dev machine, in staging, in production, and anywhere else.
A Dockerfile is a set of instructions that take a source image and bring it to a desired state, which results in an image too. Any existing Dockerfile's outcome image could in turn be taken as a source for another one, and so on.
Let's start with a super-minimal set of packages:
$ npm i react react-dom isomorphic-unfetch --save $ npm i next --save-dev
Next, we create scripts
in package.json
as usual:
{ "scripts": { "start": "next", "build": "next build", "server": "next server" } }
Let's create our very first Docker file. We start with the official Node.js image, and each step will create an intermediate image:
FROM node:latest...