Запуск команды flyway - это просто вывод справки и выход из скрипта Python - PullRequest
0 голосов
/ 04 октября 2019

Итак, у меня есть скрипт Python, который я запускаю через AWS CodeBuild. Он использует докер-контейнер командной строки flyway для выполнения следующей команды:

cmd = 'flyway -user=' + connection_items['username'] + ' -password=' + connection_items['password'] + ' migrate'
os.system(cmd) # I know this is insecure... just trying to get a migration to run

Что происходит, если он выполняет flyway без каких-либо аргументов, которые просто выводят справку и завершаются. У кого-нибудь есть предложения относительно того, что я делаю неправильно? Я не могу запустить через модуль subprocess (у меня проблемы с путями)

Спасибо!

1 Ответ

1 голос
/ 04 октября 2019

Это больше похоже на проблему расширения оболочки, чем CodeBuild.

Ваша сборочная спецификация сбивала с толку, я переписал вашу сборочную спецификацию следующим образом. Я надеюсь, что это поможет:

---
version: 0.2
phases:
  install:
    runtime-versions:
      python: 3.7
    commands:
     - echo "Installing flyway..."
     - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&
     - timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
     - echo "docker run --rm flyway/flyway:6.0.4 -url=jdbc:mysql://db -schemas=myschema -user=root -password=P@ssw0rd -connectRetries=60 migrate" > /usr/local/bin/flyway 
     - chmod +x /usr/local/bin/flyway
     - 
  build:
    commands:
      - echo building...
      - /usr/local/bin/flyway
      - python MigrateDatabase.py

Кроме того, я уверен, что вы уже устанавливаете для режима привилегий значение true для среды проекта.

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