Ich bin für Windows ausführen. (choco install make
)Ausführen eines Befehls von einer Variablen in make
ziemlich alles ausarbeitet gut, bis ich versuche, einen Docker Container zu bauen, die speziell auf Amazon ECS ....
Ein Teil des ECS bereitstellen Prozess zu implementieren ist, dass Sie einen Login erhalten von AWS aws ecr get-login
gibt diese eine Zeichenfolge, die einen Befehl enthält, der diese, wenn ich aus der Schale gerade lief wie docker login -u AWS -p AQEC...HGZSSUMX4ftIpo8gY2 -e none https://123456789.dkr.ecr.us-east-1.amazonaws.com
sieht i die Ausgabe und an ihm vorbei auf die Kommandozeile und führen würde kopieren - aber ich versuche zu setze das in mein Makefile, also habe ich @ECS_LOGIN =$(shell aws ecr get-login)
und dann versuche ich es auf der nächsten Zeile $(ECS_LOGIN)
und das ist auszuführen, wo ich
process_begin: CreateProcess(NULL, ECS_LOGIN =docker login -u AWS -p AQEC...HGZSSUMX4ftIpo8gY2 -e none https://123456789.dkr.ecr.us-east-1.amazonaws.com, ...) failed. make (e=2): The system cannot find the file specified. make: *** [docker-deploy] Error 2
von der Erforschung anderer Fragen dies scheint wie eine Wegfindung Problem bekommen, wenn sie von Windows ausgeführt wird Makefile error make (e=2): The system cannot find the file specified
aber docker Befehle vor meiner aws ecr get-login
gut funktionieren dh 012.380. docker build
so scheint es spezifisch den Befehl aus dem variablen
So zu laufen, wie führe ich diesen Befehl von make und haben den Weg lösen?
vollständige Rezept
docker-deploy: docker-build @ECS_LOGIN =$(shell aws ecr get-login) $(ECS_LOGIN) docker tag mytag:latest 123456789.dkr.ecr.us-east-1.amazonaws.com/mytag:latest docker push 123456789.dkr.ecr.us-east-1.amazonaws.com/mytag:latest
danke - Putting die Variable gesetzt außerhalb des Rezepts schien den Trick zu tun –