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
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.
services: some-service: build: ./some-service
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
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.