Error: failed to load Compose file: invalid interpolation format for versions.prometheus.image: "required variable versions.prometheus:v2.7.0 is missing a value". You may need to escape any $ with another $.
The reason is that the parameters.yml is structured as a properties file, not a YAML:
Additional information you deem important (e.g. issue happens only occasionally):
I know that parameters in image names will no longer be allowed shortly, this is just for illustration.
Also it seems that docker-app init understands the default values so far that it extracts them into the parameters file, but it cannot interpolate them in the docker-compose.yml it creates inside the foo.dockerapp folder.
Output of docker version:
$ docker version
Client:
Version: 18.09.3
API version: 1.39
Go version: go1.10.8
Git commit: 774a1f4
Built: Thu Feb 28 06:47:20 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.3
API version: 1.39 (minimum version 1.12)
Go version: go1.10.8
Git commit: 774a1f4
Built: Thu Feb 28 05:59:55 2019
OS/Arch: linux/amd64
Experimental: false
Output of docker-app version:
$ docker-app-cnab version
Version: v0.7.3
Git commit: 332efaa
Built: Fri Nov 30 15:17:53 2018
OS/Arch: linux/amd64
Experimental: off
Renderers: none
Description
docker-app init
creates a settings.yml (or parameters.yml lately) where it extracts placeholders from the given docker-compose.yml.Placeholders with dots like
${versions.prometheus}
or${versions.alertmanager}
are extracted as-is.Steps to reproduce the issue:
services: prometheus: image: prom/prometheus:${versions.prometheus:-v2.7.0} ports:
9090:9090
alertmanager: image: prom/alertmanager:${versions.alertmanager:-v0.15.0} ports: -9093:9093
Describe the results you received:
The reason is that the parameters.yml is structured as a properties file, not a YAML:
Describe the results you expected: No error while rendering, parameters.yml should look like below:
Additional information you deem important (e.g. issue happens only occasionally): I know that parameters in image names will no longer be allowed shortly, this is just for illustration.
Also it seems that
docker-app init
understands the default values so far that it extracts them into the parameters file, but it cannot interpolate them in the docker-compose.yml it creates inside the foo.dockerapp folder.Output of
docker version
:Output of
docker-app version
: