[英]Nestjs Docker Build with Github Actions Fail
我正在尝试使用 GitHub 操作来构建我的应用程序 docker 图像并将其推送到 GCR。 我创建了一个 Dockerfile 来构建应用程序,并在我的电脑 (windows) 上对其进行了本地测试,一切都按预期工作。
回购 url: https://github.com/or-sentryops/demo-backend
一旦我尝试使用 gitbub 操作来构建 docker,我就会收到错误消息:
> 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'
]
}
在这里也添加我的 docker 文件和 github 操作工作流程
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)
在构建步骤中仅安装开发依赖项。 删除--only=development
你应该对 go 很好。 你也可以在这里找到我的 Dockerfile 模板
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.