繁体   English   中英

Nestjs Docker 使用 Github 操作构建失败

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM