When building a Convox app using (f.e.) a deployment workflow, the command line being run is something like:
convox build --app my-app --description 'test build' --id --manifest my-app/convox.yml --development
Where the my-app
application is located completely in the my-app
directory of the checked out repository. In this example, this repository contains multiple applications, hence why the sub-dir.
All service build contexts (Dockerfile
, etc) in convox.yml
are specified relative to the manifest. However, when building with --manifest
, the service build contexts doesn’t seem to be evaluated relative to the manifest file like I would expect.
Convoy.yml:
services:
some-service:
build: ./some-service
Result:
Packaging source... OK
Uploading source... OK
Starting build... OK
Authenticating <X>.dkr.ecr.eu-west-1.amazonaws.com: Login Succeeded
Authenticating https://index.docker.io/v1/: Login Succeeded
Building: ./some-service
ERROR: open some-service/Dockerfile: no such file or directory
ERROR: build failed
Is there some other way to specify the build context for services that will work both when building from the application directly (simply convox build
) and with --manifest
option?
Maybe I’ve doing something wrong here, but I’ve tried several combinations of relative path variations in the convoy.yml
definition, and the only way I can get both relative and manifest-specified builds to work is by using absolute paths, which you obviously don’t want to do. I also tried using environment variables (like PWD
), but didn’t get that to work either.
Another thing that would be helpful in this case is to be able to specify a build context in the deployment workflow itself, but I can’t see any such option.
Thanks!