Как запускать команды после входа в оболочку командой контейнера в ВМ? - PullRequest
0 голосов
/ 18 июня 2019

когда я выполнил эту команду

kubectl exec -it $(kubectl get pods | grep container-name | awk '{print $1}') /bin/sh

Я ssh в свой контейнер,

/src #

Теперь - я хочу добавить еще 2 команды, чтобы я сделал

kubectl exec -it $(kubectl get pods | grep container-name | awk '{print $1}') /bin/sh ; cd app/Http/Controllers; ls -lrt; 

но я все еще вижу это

/src #

Я должен видеть это

/src # cd app/Http/Controllers; ls -lrt;                                                
total 44                                                                                
-rw-r--r--    1 root     root           361 Jun 11 11:27 Controller.php                   
-rw-r--r--    1 root     root          1734 Jun 11 11:27 ClientController.php             
-rw-r--r--    1 root     root          1702 Jun 11 11:27 BroadcastController.php        
-rw-r--r--    1 root     root          5257 Jun 17 15:24 NodeController.php              
-rw-r--r--    1 root     root          2844 Jun 17 20:21 AccountController.php          
/src/app/Http/Controllers #

1 Ответ

1 голос
/ 18 июня 2019

Нет необходимости заходить внутрь docker-контейнера, как показано ниже

kubectl exec -it $(kubectl get pods | grep container-name | awk '{print $1}') -- ls -lrt /app/Http/Controllers;

kubectl выполнит каждую команду внутри контейнера, которая идет после --.Также вы можете смонтировать целевой каталог и выполнить ls на локальном хосте.создайте файл yaml, подобный тому, что здесь.

apiVersion: v1
kind: Pod
metadata:
  name: test-container
spec:
  containers:
  - name: my-container
    image: my-container
    volumeMounts:
    - name: my-storage
      mountPath: /data/
  volumes:
  - name: my-storage
    hostPath:
        # directory location on host
        path: /opt/data
        # this field is optional
        type: Directory

затем выполните эту команду kubectl apply -f your-file.yaml

...