如何在不运行K8S入口点的情况下保持docker pod?

时间:2019-08-13 06:02:59

标签: docker kubernetes

我有以下dockerfile:

FROM node:8 as build
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
ENV PATH /usr/src/app/node_modules/.bin:$PATH
COPY package.json /usr/src/app/package.json
RUN npm install
COPY . /usr/src/app

发布到我们的工件。但是,由于没有提供命令/入口点,因此docker会立即结束。因此我通常使用docker run -d -t来运行它。但是,在kubernetes中部署它时,我无法指定args -d和-t,因为会出现一个错误,即节点不知道参数-d和-t。

添加以下入口点时,

ENTRYPOINT [ "tail", "-f", "/dev/null"]

机器不断崩溃

如何使Pod在后台运行?

1 个答案:

答案 0 :(得分:2)

使用-i命令的--ttykubectl run选项。

kubectl run -i --tty --image=<image> <name> --port=80 --env="DOMAIN=cluster"

更多信息here

更新

对于yaml文件,请使用stdintty选项。

apiVersion: v1 
kind: Pod 
metadata: 
  name: testpod
spec: 
  containers: 
    - name: testpod
      image: testimage
      stdin: true
      tty: true

更多信息here