【问题标题】:Dockerfile FROM AS throws Invalid Reference FormatDockerfile FROM AS 抛出无效的参考格式
【发布时间】:2020-06-29 23:43:43
【问题描述】:

我正在尝试使用使用 FROM AS 的多步 Dockerfile,但是当我在 Jenkins 作业中运行 Dockerfile 时出现错误

FROM node:8.12.0-alpine AS firstStep
Error parsing reference: "node:8.12.0-alpine AS firstStep" is not a valid repository/tag: invalid reference format

Dockerfile 是这样的:

FROM node:8.12.0-alpine AS firstStep

WORKDIR /usr/src/app/

# Copy both the package.json and the package-lock.json
COPY package*.json ./

COPY . .

# Deployment container
FROM nginx:1.14.0-alpine
RUN apk add --no-cache bash
RUN apk add --update curl

#set env var for certs
ENV NODE_EXTRA_CA_CERTS /confs/MyPem.pem

# Forward logs to stdout and stderr
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
    && ln -sf /dev/stderr /var/log/nginx/error.log

# Create nginx config dir and copy nginx files for environments into it
RUN mkdir /confs
COPY ./nginxconf/* /confs/

#This copies the Keystore from the workspace and places it at the root of the container
COPY ./MyPem.pem /confs/MyPem.pem

COPY --from=firstStep /usr/src/app/dist /usr/share/nginx/html
COPY ./entrypoint.sh /opt/entrypoint.sh
RUN chmod a+x /opt/entrypoint.sh

ENTRYPOINT ["/opt/entrypoint.sh"]

【问题讨论】:

  • 本地有什么版本的Docker?我觉得我见过一两次本地 Docker 太旧而无法真正支持多阶段构建的情况。

标签: docker nginx dockerfile continuous-deployment


【解决方案1】:

如果您签入dockerhub.com 图像 node:8.12.0-alpine 确实不存在,请使用例如 "node:8.12-alpine" 。你也应该使用小写的“firstStep”所以......“firststep”

【讨论】:

    【解决方案2】:

    17.05.0 中添加了对多阶段构建的支持。您可以使用docker version 来检查 docker 客户端和服务器的当前版本。您需要升级执行构建的 docker 引擎。交付新的主要版本后,不支持较旧的 docker 版本,因此您需要选择当前的稳定版本。按照installation guide from docker 为您的平台从 docker repos 安装,您会经常发现 Linux 发行版的 repos 中有旧版本的 docker。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-16
      • 1970-01-01
      • 2018-01-22
      • 2019-06-27
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      相关资源
      最近更新 更多