Reputation: 1
I am trying to use GitHub actions for building and pushing my application docker image to GCR. I created a Dockerfile for building the app and tested it locally on my pc (windows) all works as expected.
repo url: https://github.com/or-sentryops/demo-backend
Once i am trying to use gitbub actions for building the docker i am getting an error:
> nest build
internal/modules/cjs/loader.js:905
throw err;
^
Error: Cannot find module 'ansi-styles'
Require stack:
- /usr/src/app/node_modules/@nestjs/cli/node_modules/chalk/source/index.js
- /usr/src/app/node_modules/@nestjs/cli/commands/command.loader.js
- /usr/src/app/node_modules/@nestjs/cli/commands/index.js
- /usr/src/app/node_modules/@nestjs/cli/bin/nest.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
at Function.Module._load (internal/modules/cjs/loader.js:746:27)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:101:18)
at Object.<anonymous> (/usr/src/app/node_modules/@nestjs/cli/node_modules/chalk/source/index.js:2:20)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Module.require (internal/modules/cjs/loader.js:974:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/usr/src/app/node_modules/@nestjs/cli/node_modules/chalk/source/index.js',
'/usr/src/app/node_modules/@nestjs/cli/commands/command.loader.js',
'/usr/src/app/node_modules/@nestjs/cli/commands/index.js',
'/usr/src/app/node_modules/@nestjs/cli/bin/nest.js'
]
}
Adding here also my docker file and the github actions workflow
FROM node:14-alpine As development
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install --only=development
RUN npm install --global rimraf && npm install --global parcel-bundler
COPY . .
RUN npm run build
FROM node:14-alpine as production
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install --only=production
COPY . .
COPY --from=development /usr/src/app/dist ./dist
CMD ["node", "dist/main"]
name: Docker Image CI
on:
push:
branches: [ master ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build the Docker image
run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)
Upvotes: 0
Views: 1128
Reputation: 70332
Only the development dependencies are being installed in the build step. Remove the --only=development
and you should be good to go. You can find my Dockerfile template here as well
Upvotes: 1