Я пытаюсь автоматизировать процесс отправки моих временных ключей 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: неверный синтаксис»)