Regex в Windows Batch для автоматизации запуска Docker

Я пытаюсь автоматизировать процесс отправки моих временных ключей Amazon AWS в качестве переменных среды в образ Docker с помощью Windows. У меня есть файл credentials.txt, который содержит мои учетные данные AWS (3 идентификатора всегда одинаковы, но значения строк регулярно меняются). Я использую командную строку Windows.

Ввод : (включает 2 пустые строки в конце) credentials.txt :

[default]
aws_access_key_id     = STR/+ing1
aws_secret_access_key = STR/+ing2
aws_session_token     = STR/+ing3


Требуемый вывод : мне нужно выполнить следующую команду для запуска образа Docker (замена строк фактическими строками):

docker run -e AWS_ACCESS_KEY_ID=STR/+ing1 -e AWS_SECRET_ACCESS_KEY=STR/+ing2 -e AWS_SESSION_TOKEN=STR/+ing3 my-aws-container

Моя идея состоит в том , чтобы попытаться использовать регулярное выражение в credentials.txt, чтобы преобразовать его в:

SET aws_access_key_id=STR/+ing1
SET aws_secret_access_key=STR/+ing2
SET aws_session_token=STR/+ing3

А затем запустите:

docker run -e AWS_ACCESS_KEY_ID=%aws_access_key_id% -e AWS_SECRET_ACCESS_KEY=%aws_secret_access_key% -e AWS_SESSION_TOKEN=%aws_session_token% my-aws-container

У кого-нибудь есть советы, как этого добиться?

Всего 1 ответ


Я попробовал Python, который, кажется, работает. У кого-то еще может быть лучший ответ.

Я создаю файл Python:

docker_run.py

import re
import os

myfile = 'C:/fullpath/credentials'
with open(myfile,'r') as f:
    mystr = f.read()
vals = re.findall('=[s]*([^
]+)',mystr)
keys = ['AWS_ACCESS_KEY_ID','AWS_SECRET_ACCESS_KEY','AWS_SESSION_TOKEN']
environment_vars = ''.join([' -e ' + k + '=' + v for k,v in zip(keys,vals)])
cmd = 'docker run'+environment_vars+' my-aws-container'

os.system(cmd)

Затем из командной строки я запускаю:

python docker_run.py

Это удается запустить докер

(примечание: я попытался использовать exec () в последней строке, а не os.system (), но получил ошибку «SyntaxError: неверный синтаксис»)


Есть идеи?

10000