GitHub 操作:将生成的目录复制到 Docker 图像时出错
GitHub Actions: Error when copying generated directory to Docker image
我正在使用 GitHub Actions 来构建我们的 NestJS 应用程序。
这些是 GitHub 操作工作流程中的一些步骤:
- name: Build Nest application
run: npm run build
- run: ls -al
- name: Build the Docker image
run: docker build . --file github.Dockerfile
github.Dockerfile
看起来像这样:
FROM node:14-alpine as app
WORKDIR /usr/home/app
COPY package.json ./
COPY src ./
COPY node_modules ./
构建失败并显示此错误消息:
Step 5/5 : COPY node_modules ./
COPY failed: stat /var/lib/docker/tmp/docker-builder535687818/node_modules: no such file or directory
用RUN ls -al
列出目录内容时,结果是这样的:
drwxr-xr-x 9 runner docker 4096 Sep 29 12:53 .
drwxr-xr-x 3 runner docker 4096 Sep 29 12:52 ..
-rw-r--r-- 1 runner docker 1541 Sep 29 12:52 .dockerignore
-rw-r--r-- 1 runner docker 663 Sep 29 12:52 .eslintrc.js
-rw-r--r-- 1 runner docker 1300 Sep 29 12:52 .gcloudignore
drwxr-xr-x 8 runner docker 4096 Sep 29 12:52 .git
drwxr-xr-x 3 runner docker 4096 Sep 29 12:52 .github
-rw-r--r-- 1 runner docker 388 Sep 29 12:52 .gitignore
-rw-r--r-- 1 runner docker 51 Sep 29 12:52 .prettierrc
-rw-r--r-- 1 runner docker 3370 Sep 29 12:52 README.md
-rw-r--r-- 1 runner docker 162 Sep 29 12:52 cloudbuild.yaml
drwxr-xr-x 2 runner docker 4096 Sep 29 12:53 dist
-rw-r--r-- 1 runner docker 102 Sep 29 12:52 github.Dockerfile
drwxr-xr-x 2 runner docker 4096 Sep 29 12:52 k8s
-rw-r--r-- 1 runner docker 64 Sep 29 12:52 nest-cli.json
drwxr-xr-x 134 runner docker 4096 Sep 29 12:53 node_modules
-rw-r--r-- 1 runner docker 521420 Sep 29 12:52 package-lock.json
-rw-r--r-- 1 runner docker 1923 Sep 29 12:52 package.json
-rw-r--r-- 1 runner docker 471 Sep 29 12:52 skaffold.Dockerfile
-rw-r--r-- 1 runner docker 446 Sep 29 12:52 skaffold.yaml
drwxr-xr-x 2 runner docker 4096 Sep 29 12:52 src
drwxr-xr-x 2 runner docker 4096 Sep 29 12:52 test
-rw-r--r-- 1 runner docker 97 Sep 29 12:52 tsconfig.build.json
-rw-r--r-- 1 runner docker 339 Sep 29 12:52 tsconfig.json
package.json
和 src
是 Git 存储库的一部分。 node_modules
在 Git 集线器操作的过程中生成。
为什么 node_modules
不能复制到 Docker 容器,而 package.json
和 src
都可以?
原来 node_modules
包含在 .dockerignore
文件中。 ♂️
我正在使用 GitHub Actions 来构建我们的 NestJS 应用程序。
这些是 GitHub 操作工作流程中的一些步骤:
- name: Build Nest application
run: npm run build
- run: ls -al
- name: Build the Docker image
run: docker build . --file github.Dockerfile
github.Dockerfile
看起来像这样:
FROM node:14-alpine as app
WORKDIR /usr/home/app
COPY package.json ./
COPY src ./
COPY node_modules ./
构建失败并显示此错误消息:
Step 5/5 : COPY node_modules ./
COPY failed: stat /var/lib/docker/tmp/docker-builder535687818/node_modules: no such file or directory
用RUN ls -al
列出目录内容时,结果是这样的:
drwxr-xr-x 9 runner docker 4096 Sep 29 12:53 .
drwxr-xr-x 3 runner docker 4096 Sep 29 12:52 ..
-rw-r--r-- 1 runner docker 1541 Sep 29 12:52 .dockerignore
-rw-r--r-- 1 runner docker 663 Sep 29 12:52 .eslintrc.js
-rw-r--r-- 1 runner docker 1300 Sep 29 12:52 .gcloudignore
drwxr-xr-x 8 runner docker 4096 Sep 29 12:52 .git
drwxr-xr-x 3 runner docker 4096 Sep 29 12:52 .github
-rw-r--r-- 1 runner docker 388 Sep 29 12:52 .gitignore
-rw-r--r-- 1 runner docker 51 Sep 29 12:52 .prettierrc
-rw-r--r-- 1 runner docker 3370 Sep 29 12:52 README.md
-rw-r--r-- 1 runner docker 162 Sep 29 12:52 cloudbuild.yaml
drwxr-xr-x 2 runner docker 4096 Sep 29 12:53 dist
-rw-r--r-- 1 runner docker 102 Sep 29 12:52 github.Dockerfile
drwxr-xr-x 2 runner docker 4096 Sep 29 12:52 k8s
-rw-r--r-- 1 runner docker 64 Sep 29 12:52 nest-cli.json
drwxr-xr-x 134 runner docker 4096 Sep 29 12:53 node_modules
-rw-r--r-- 1 runner docker 521420 Sep 29 12:52 package-lock.json
-rw-r--r-- 1 runner docker 1923 Sep 29 12:52 package.json
-rw-r--r-- 1 runner docker 471 Sep 29 12:52 skaffold.Dockerfile
-rw-r--r-- 1 runner docker 446 Sep 29 12:52 skaffold.yaml
drwxr-xr-x 2 runner docker 4096 Sep 29 12:52 src
drwxr-xr-x 2 runner docker 4096 Sep 29 12:52 test
-rw-r--r-- 1 runner docker 97 Sep 29 12:52 tsconfig.build.json
-rw-r--r-- 1 runner docker 339 Sep 29 12:52 tsconfig.json
package.json
和 src
是 Git 存储库的一部分。 node_modules
在 Git 集线器操作的过程中生成。
为什么 node_modules
不能复制到 Docker 容器,而 package.json
和 src
都可以?
原来 node_modules
包含在 .dockerignore
文件中。 ♂️