繁体   English   中英

回退重启失败的容器openshift kubernetes

[英]Back-off restarting failed container openshift kubernetes

我有一个运行 Kong-api 的 Dockerfile 以部署在 openshift 上。 它构建得很好,但是当我检查 pod 时,我得到Back-off restarting failed container 这是我的 dockerfile

FROM ubuntu:18.04
RUN apt-get update && apt-get install -y apt-transport-https curl lsb-core
RUN echo "deb https://kong.bintray.com/kong-deb `lsb_release -sc` main" | tee -a /etc/apt/sources.list
RUN curl -o bintray.key https://bintray.com/user/downloadSubjectPublicKey?username=bintray
RUN apt-key add bintray.key
RUN apt-get update && apt-get install -y kong

COPY kong.conf /etc/kong/
RUN kong migrations bootstrap [-c /etc/kong/kong.conf]

EXPOSE 8000 8443 8001 8444
ENTRYPOINT ["kong", "start", "[-c /etc/kong/kong.conf]"]

我哪里错了? 请帮我。 提前致谢

为了使 kong 正确启动,当你有一个活动的 Postgres 连接时,你需要执行这些命令:

kong migrations bootstrap && kong migrations up

另外,请注意当前 Dockerfile 的格式无效,如果您想在ENTRYPOINT中传递选项,您可以这样编写:

ENTRYPOINT ["kong", "start","-c", "/etc/kong/kong.conf"]

此外,您需要删除此行:

RUN kong migrations bootstrap [-c /etc/kong/kong.conf]

请注意,上述行的格式无效,因为RUN需要正常的 shell 命令,因此在这种情况下使用[]是不正确的。

因此,当您部署到 Openshift 时,有多种方法可以满足您的需求。

  • 您可以使用initContainers ,它允许您在实际服务启动之前执行所需的命令。
  • 您可以查看Kong 的官方 helm chart以了解其工作原理或使用 helm 自行安装 Kong。

Openshift 不允许 pod 以 root 用户运行。 您需要在 Dockerfile 中创建用户并使用非 root 用户来运行容器。 它应该工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM