diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..724eafa1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +# Stage 1: Build the NextJS Application +FROM node:20-alpine as build +WORKDIR /app +COPY package*.json ./ +RUN npm ci +COPY . . +RUN npm run build + +# Stage 2: Setup the Nginx Server to serve the NextJS Application +FROM nginx:stable-alpine3.17 as production +COPY --from=build /app/dist /usr/share/nginx/html +RUN echo 'server { listen 80; server_name _; root /usr/share/nginx/html; location / { try_files $uri /index.html; } }' > /etc/nginx/conf.d/default.conf +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/README.md b/README.md index 9e7e1498..e49be930 100644 --- a/README.md +++ b/README.md @@ -36,5 +36,12 @@ npm install npm run build ``` +### Docker Build +```bash +docker build -t drawdb . +docker run -p 3000:80 drawdb +``` + + Set up the [server](https://github.com/drawdb-io/drawdb-server) and environment variables according to `.env.sample` for the survey and bug report forms.