Docker构建Node服务时FROM指令报错的解决方法
Docker构建Node后端服务FROM指令报错解决方案
报错信息
执行镜像构建时抛出dockerfile-utils校验错误:
No source image provided with `FROM`dockerfile-utils(20) Unknown instruction: FROM:dockerfile-utils(38)
相关配置
故障Dockerfile配置
FROM: node:16-alpine WORKDIR /app/backend COPY package.json /app/backend RUN npm install COPY . /app/backend/ EXPOSE 3001 CMD [ "npm", "run", "dev" ]
对应docker-compose配置
version: "3.1" services: backend: build: ./ container_name: node_container tty: true stdin_open: true restart: always working_dir: /app/backend volumes: - ./:/app/backend depends_on: - mysqldb ports: - 3001:3001 mysqldb: image: mysql:8.0.26 container_name: mysqldb_container restart: always ports: - 3307:3306
故障原因
FROM是Dockerfile内置指令,作用是声明构建使用的基础镜像,语法规则要求指令关键字后直接用空格分隔参数,不需要添加冒号。
当前配置第一行误写为FROM: node:16-alpine,会触发两个解析异常:
- Docker校验逻辑识别不到合法的
FROM结构,判定未传入基础镜像参数,抛出错误码20 - 解析器将
FROM:识别为未定义的自定义指令,抛出错误码38
修复方法
修改Dockerfile第一行,删除FROM后面多余的冒号,调整为标准写法:
FROM node:16-alpine
修改完成后重新执行构建命令即可正常完成镜像打包,其余配置无需改动。
内容的提问来源于stack exchange,提问作者Kelson Batista
相关产品推荐
相关产品推荐

