обновить содержимое файла с помощью placehodler - PullRequest
2 голосов
/ 18 апреля 2020

У меня есть следующий файл yaml, в котором я хочу заменить %IMG_NAME% на переменную оболочки, которую я уже определил, например, $IMG_NAME.

Это входной файл

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app
spec:
  replicas: 1
      app: app
  template:
    metadata:
      labels:
        app: app
    spec:
      containers:
        - name: app
          image: %IMG_NAME%. //this the value to update
          imagePullPolicy: Always
          ports:
            - containerPort: 5000
          resources:
            limits:
              memory: 50Mi
            requests:
              memory: 25Mi

Я пытаюсь сделать следующее, что не работает, любая идея?

sed -e ’s,myimage,’$IMG_NAME',g' < deployment.yaml

1 Ответ

2 голосов
/ 18 апреля 2020

Понятия не имею, почему вы пытаетесь написать update-dep:. Что это?

В любом случае, может быть, вы просто хотите сделать это:

sed 's/%IMG_NAME%/'"$IMG_NAME"'/g' deployment.yaml

, где

  • двойные кавычки $IMG_NAME это просто хорошая привычка,
  • -e не требуется,
  • использование , вместо / также не требуется, как указано в комментарии

Не указано c до sed, очень важно знать следующее:

  • символ ' представляет собой одинарную кавычку , а не правильную одиночную кавычку, которую вы поставили в вашем вопросе ().
  • если у вас есть фактический file, который вы хотите передать unix program (например, sed, awk и многим другим) вам не нужно передавать это так, program < file, потому что многие из этих программ принимают имя файла в качестве аргумента командной строки, поэтому вы можете сделать program file. При этом program знает об имени файла (это не так, когда вы делаете program < file), а также осознает, что это файл в первую очередь (после < вы можете поместить что-то, что не является файл). Если program не знает, что он работает с файлом (или не знает, что такое имя файла), такие параметры, как sed, параметр -i использовать нельзя, потому что программа не имеет ни малейшего представления, где ее следует перезаписать. .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...