docker - 试图弄清楚如何为Docker容器化此可执行文件

标签 docker kubernetes cloudflare

我在尝试创建一个公开Linux的Cloudflare's Tunnel可执行文件的docker镜像时遇到了麻烦。到目前为止,我已经完成了我的docker镜像的工作(镜像来自https://github.com/jakejarvis/docker-cloudflare-argo/blob/master/Dockerfile)

FROM ubuntu:18.04

LABEL maintainer="Jake Jarvis <jake@jarv.is>"

RUN apt-get update \
  && apt-get install -y --no-install-recommends wget ca-certificates \
  && rm -rf /var/lib/apt/lists/*

RUN wget -O cloudflared.tgz https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-amd64.tgz \
  && tar -xzvf cloudflared.tgz \
  && rm cloudflared.tgz \
  && chmod +x cloudflared

ENTRYPOINT ["./cloudflared"]

official documentation for their kubernetes setup之后,我通过以下方式将其作为边车添加到了我的部署中:(此处cloudflare-argo:5是从上面的dockerfile构建的镜像)
    - name: cloudflare-argo
      image: my-registry/cloudflare-argo:5
      imagePullPolicy: Always
      command: ["cloudflared", "tunnel"]
      args:
        - --url=http://localhost:8080
        - --hostname=my-website
        - --origincert=/etc/cloudflared/cert.pem
        - --no-autoupdate
      volumeMounts:
        - mountPath: /etc/cloudflared
          name: cloudflare-argo-secret
          readOnly: true
      resources:
        requests:
          cpu: "50m"
        limits:
          cpu: "200m"
  volumes:
    - name: cloudflare-argo-secret
      secret:
        secretName: my-website.com

但是,一旦我部署,我的pod上会出现CrashLoopBackOff错误,并显示以下kubectl describe输出

Created container cloudflare-argo

Error: failed to start container "cloudflare-argo": Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"cloudflared\": executable file not found in $PATH": unknown

最佳答案

在dockerfile中,它是./cloudflared,因此将是:

      command:
        - ./cloudflared
        - tunnel
        - --url=http://localhost:8080
        - --hostname=my-website
        - --origincert=/etc/cloudflared/cert.pem
        - --no-autoupdate

(同样也没有理由同时使用commandargs,只需选择一个,如果您删除第一个项目,则使用args)。

关于docker - 试图弄清楚如何为Docker容器化此可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62099573/

相关文章:

docker - minikube + Docker 卷?

docker - SVN代码存储库中Kubernetes资源YAML文件的可行性

postgresql - 如何使用 postgres 在 GKE kubernetes StatefulSet 中保留数据?

python - 如何使用 Cloudflare SSL 证书设置简单的 https 服务器?

nginx 允许|拒绝 $realip_remote_addr

php - CloudFlare Flexible SSL with Wordpress(模板 URL)

docker - 无法使用云构建上传非图像工件

docker - Docker卷与Kubernetes持久卷

kubernetes - Nginx 入口 Controller - 无法观看 *v1.EndpointSlice :

kubernetes - 由于证书 mTLS 上的路径无效,Istio Sidecar 代理无法启动