territory/ci/Dockerfile

34 lines
574 B
Docker

###################
# BUILD FOR CI TESTING
###################
FROM docker.io/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" ]