【发布时间】:2021-04-18 22:08:19
【问题描述】:
这可能是一个简单的问题,但我找不到合适的解决方案。
我有一个如下所示的 Docker 映像。我想做的事情只是在 kubernetes pod 中运行 curl 命令,但我收到如下错误。我也无法通过 bash 执行。
$ kubectl exec -ti hub-cronjob-dev-597cc575f-6lfdc -n hub-dev sh
Defaulting container name to hub-cronjob.
Use 'kubectl describe pod/hub-cronjob-dev-597cc575f-6lfdc -n hub-dev' to see all of the containers in this pod.
/usr/src/app $ curl
sh: curl: not found
用 bash 试过
$ kubectl exec -ti cronjob-dev-597cc575f-6lfdc -n hub-dev bash
mand in container: failed to exec in container: failed to start exec "8019bd0d92aef2b09923de78753eeb0c8b60a78619543e4cd27069128a30da92": OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown
Dockerfile
FROM node:12-alpine AS builder
# Variables from outside
ARG NODE_ENVIRONMENT=development
ENV NODE_ENV=$NODE_ENVIRONMENT
# Create app directory
WORKDIR /usr/src/app
#Install curl
RUN apk --no-cache add curl -> did not work
RUN apk update && apk add curl curl-dev bash -> did not work
# Install app dependencies
COPY package*.json ./
RUN npm install
# Bundle app source
COPY . .
# Build Stage 2
# Take the build from the previous stage
FROM node:12-alpine
WORKDIR /usr/src/app
COPY --from=builder /usr/src/app /usr/src/app
# run the application
EXPOSE 50005 9183
CMD [ "npm", "run", "start:docker" ]
【问题讨论】:
-
你必须在你的镜像中自己安装curl,例如:
RUN apk --no-cache add curl -
你可以在本地试用你的镜像,没有理由在它工作之前将它部署到kubernetes。
-
只有最后
FROM行之后的内容才会包含在最终图像中。
标签: docker kubernetes dockerfile