因此,我有一个通过AWS CodeBuild运行的Python脚本。它使用flyway命令行docker容器执行以下命令:
product
发生的事情是它执行了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
模块运行(我遇到了路径问题)
谢谢!
答案 0 :(得分:1)
它看起来更像是Shell扩展问题,而不是CodeBuild。
您的buildspec令人困惑,我将您的buildspec重写如下。我希望这会有所帮助:
---
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。