34 lines
564 B
Docker
34 lines
564 B
Docker
|
###################
|
||
|
# BUILD FOR CI TESTING
|
||
|
###################
|
||
|
|
||
|
FROM node:18-alpine3.16
|
||
|
|
||
|
# Create app directory
|
||
|
WORKDIR /usr/src/app
|
||
|
|
||
|
# A wildcard is used to ensure both package.json AND package-lock.json are copied
|
||
|
COPY package*.json ./
|
||
|
|
||
|
# Install app dependencies
|
||
|
RUN npm ci
|
||
|
|
||
|
# Bundle app source
|
||
|
COPY . .
|
||
|
|
||
|
# Generate prisma client
|
||
|
RUN npx prisma generate
|
||
|
|
||
|
# Create a "dist" folder
|
||
|
RUN npm run build
|
||
|
|
||
|
# Run unit tests
|
||
|
RUN npm run test:unit:ci
|
||
|
|
||
|
# ESLint / Prettier
|
||
|
RUN npm run lint:check
|
||
|
RUN npm run pretty:check
|
||
|
|
||
|
# Start the server
|
||
|
CMD [ "node", "dist/main.js" ]
|