mseskas
November 25, 2022, 8:17am
1
Hi,
We are using torizoncore-builder to build images for colibri-imx7-emmc. Command “torizoncore-builder build” failes when we use docker-compose.yml with single “$” dollar symbol. Changing “$” to double dollar symbol “$$” in docker-compose.yml solves the issue.
Our goal is to use original docker-compose.yml with single “$” symbol. Can you make torizoncore-builder to accept docker-compose.yml with single “$” dollar sign?
Our docker-compose.yml file content:
version: '2'
services:
portainer:
image: portainer/portainer:1.24.2
container_name: portainer
command: --admin-password '$2y05'
Our tcbuild.yaml file content:
input:
easy-installer:
toradex-feed:
version: "5.7.0"
release: quarterly
machine: colibri-imx7-emmc
distro: torizon-upstream
variant: torizon-core-docker
build-number: "17"
build-date: "20220728"
output:
easy-installer:
local: output_directory
name: "custom image name"
description: "custom image description"
bundle:
compose-file: docker-compose.yml
Also adding “torizoncore-builder --verbose build” command output as an attachement.
build otput.txt (12.7 KB)
We use latest stable torizoncore-builder: torizon/torizoncore-builder:3.6.0-20220912.
Hello @mseskas ,
This is a docker-compose related topic, not related to torizoncore-builder . There is not much that can be done about it.
Why do you need this special docker-compose behavior?
Best regards,
Josep
mseskas
November 28, 2022, 7:20am
3
Only TorizonCore builder failes to accept docker-compose.yml with single “$” dollar symbol. Docker itself works fine. Also any other tool that parse yml files accept single “$” dollar symbol in compose file.
What whould you suggest to do to make TorizonCore builder accept this compose file?
version: '2'
services:
portainer:
image: portainer/portainer:1.24.2
container_name: portainer
command: --admin-password '$2y05'
Hi @mseskas !
I just tried to run the docker-compose.yml
you shared, and I get the following error:
[ 3:58 ] [ ~/apagar ]
$ cat docker-compose.yml
───────┬─────────────────────────────────────────────────────────────────────────────────────────────────
│ File: docker-compose.yml
───────┼─────────────────────────────────────────────────────────────────────────────────────────────────
1 │ version: '2'
2 │
3 │ services:
4 │ portainer:
5 │ image: portainer/portainer:1.24.2
6 │ container_name: portainer
7 │ command: --admin-password '$2y05'
───────┴─────────────────────────────────────────────────────────────────────────────────────────────────
[ 3:58 ] [ ~/apagar ]
$ docker-compose up
ERROR: Invalid interpolation format for "command" option in service "portainer": "--admin-password '$2y05'"
[ 3:59 ] [ ~/apagar ] [ 1 ]
$ docker --version
Docker version 20.10.12, build e91ed57
[ 3:59 ] [ ~/apagar ]
$ docker-compose --version
docker-compose version 1.26.2, build eefe0d31
Are you sure that docker compose doesn’t fail on your side?
Best regards,
mseskas
November 29, 2022, 7:33am
5
You are right, it does fail on our side. Docker-compose doesn’t accept compose file with single $ symbol. We are sorry for misinformation.
Thank you.
Hi @mseskas !
No problem
Here is a related Docker Compose documentation about environment variables: Environment variables in Compose | Docker Documentation
Best regards,