【问题标题】:Gitlab pipeline cannot build image from Dockerfile, package.json not foundGitlab 管道无法从 Dockerfile 构建映像,找不到 package.json
【发布时间】:2020-02-21 20:03:30
【问题描述】:

我正在尝试从 Gitlab 管道中的 Dockerfile 复制映像构建。当我在我的机器上本地使用 docker 时,我没有问题。但是当我尝试在管道中复制该过程时,脚本失败并出现以下错误:

 Step 6/12 : RUN npm run-script build
 ---> Running in 4717c4b9d61a
 npm ERR! code ENOENT
 npm ERR! syscall open
 npm ERR! path /app/package.json
 npm ERR! errno -2
 npm ERR! enoent ENOENT: no such file or directory, open '/app/package.json'
 npm ERR! enoent This is related to npm not being able to find a file.

这是我的 .gitlab-ci.yml

image: docker:18.09.7
services:
- docker:18.09.7-dind

stages:
- build
- test

variables:
  IMAGE_TAG: $CI_REGISTRY_IMAGE -f ./hackapp/Dockerfile
before_script:
  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
build:
  stage: build
  script:
    - docker build -t $IMAGE_TAG .
    - docker push $IMAGE_TAG

test:
  stage: test
  services:
    - mongo:bionic
  script:
    - docker pull $IMAGE_TAG
    - docker run $IAMGE_TAG

还有我的 Dockerfile

# Stage I

FROM node:stretch-slim AS react-build

WORKDIR /app

COPY . /app/

RUN npm install
RUN npm install react-scripts@3.0.1 -g
RUN npm run-script build

# Stage II
#Setup Nginx
FROM nginx:1.16.0-alpine

COPY --from=react-build /app/build /usr/share/nginx/html
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d

#Fire up Nginx
EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

我尝试安装在第一个RUN 中添加npm install npm@latest -g,但就像找不到package.json 文件的路径

【问题讨论】:

  • npm install 之前,尝试执行npm init,这将创建您丢失的package.json。
  • 我在npm install 之前和之后都尝试过,但没有成功。另外,如果我提供 package.json ,脚本不应该采用该文件吗?
  • 上周我遇到了同样的错误。这样做后它起作用了。愿副本真的能复制 package.json。你能运行 ls -l 并检查一下吗??
  • 谢谢,其实是复制文件的时候路径出错了,因为我做了一些测试修改
  • Np。然后我将发布与答案相同的内容

标签: docker gitlab devops


【解决方案1】:

可能是 package.json 并没有真正被复制到 /app/ 目录中。您可以使用 ls -l 进行检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 2017-04-16
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    • 2018-04-06
    • 2020-07-23
    相关资源
    最近更新 更多