Почему он не создает папку .kube? - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть следующий Dockerfile:

FROM ubuntu:bionic as builder

ARG DIGITALOCEAN_ACCESS_TOKEN
ARG K8S_CLUSTER
ARG ARGO_SERVER
ARG ARGO_USERNAME
ARG ARGO_PW

RUN apt-get update
RUN apt-get install -y curl

WORKDIR /app

RUN curl -L https://github.com/digitalocean/doctl/releases/download/v1.41.0/doctl-1.41.0-linux-amd64.tar.gz  | tar xz
RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
RUN curl -L https://github.com/argoproj/argo-cd/releases/download/v1.4.3/argocd-linux-amd64 -o argocd

RUN chmod +x ./argocd
RUN chmod +x ./kubectl

RUN mv ./argocd /usr/local/bin/
RUN mv ./kubectl /usr/local/bin/
RUN mv ./doctl /usr/local/bin/


CMD doctl auth init -t ${DIGITALOCEAN_ACCESS_TOKEN}; \
    doctl kubernetes cluster kubeconfig save ${K8S_CLUSTER}; \
    kubectl get svc; \
    argocd login ${ARGO_SERVER} --username ${ARGO_USERNAME} --password ${ARGO_PW} --grpc-web; \
    argocd context; \
    argocd repo list;

Обычно вторая строка команд CMD:

doctl kubernetes cluster kubeconfig save ${K8S_CLUSTER};

создает .kube папку для подключения K8S.

Когда я создаю контейнер из сгенерированного изображения выше с помощью:

docker run --rm -it \
        --env=DIGITALOCEAN_ACCESS_TOKEN=ba86e1d38aff13edfed32 \
        --env=K8S_CLUSTER=k8s \
        --env=ARGO_SERVER=argocd \
        --env=ARGO_USERNAME=user \
        --env=ARGO_PW=password \
        --name argocd \
        argo-cli

, и он показывает в выводе:

Notice: Adding cluster credentials to kubeconfig file found in "/root/.kube/config"
NAME                     TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
hello-kubernetes-first   ClusterIP   10.245.232.52   <none>        80/TCP    2d
kubernetes               ClusterIP   10.245.0.1      <none>        443/TCP   2d1h
playbox                  ClusterIP   None            <none>        42/TCP    24h
'deployer' logged in successfully
Context 'argocd' updated

Но при запуске контейнера с bash:

docker run --rm -it \
        --env=DIGITALOCEAN_ACCESS_TOKEN=ba86e1d38aff13edfed32 \
        --env=K8S_CLUSTER=k8s \
        --env=ARGO_SERVER=argocd \
        --env=ARGO_USERNAME=user \
        --env=ARGO_PW=password \
        --name argocd \
        argo-cli bash

и, заглянув внутрь контейнера, папка .kube вообще не создается:

root@8e64d93ad3ba:~# ls -a
.  ..  .bashrc  .profile

Почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...