我正在尝试将这个例子构建成一个无发行版的镜像:https://github.com/docker-hy/frontend-example-docker
使用普通镜像,它将构建并运行如下所示:
FROM node:10
COPY . .
RUN npm install
EXPOSE 5000
CMD ["npm", "start"]下面的代码将不起作用,因为npm不在那里!
FROM node:10 AS builder
COPY . /app
WORKDIR /app
RUN npm install
FROM gcr.io/distroless/nodejs:10
COPY --from=builder /app /app
WORKDIR /app
EXPOSE 5000
CMD ["npm", "start"]如何使用免分发镜像为上述示例的应用程序提供服务?
发布于 2020-11-17 06:14:10
谷歌文档在这一点上似乎很清楚,你可以从https://github.com/GoogleContainerTools/distroless/blob/master/examples/nodejs/Dockerfile复制/粘贴他们的Dockerfile文件
不过相关的一点是这是“第二阶段”--注意没有NPM命令!
FROM gcr.io/distroless/nodejs:10
COPY --from=build-env /app /app
WORKDIR /app
CMD ["hello.js"]此外,就像特定镜像的节点一样,入口点被定义为该镜像的‘docs’,所以您应该有效地传递'npm run start‘命令调用的任何脚本来启动。
https://stackoverflow.com/questions/64866434
复制相似问题