Invalid Data Type, docker-compose.yml

Did a fresh install on a Pi4b. Imported tree data and media from same files as my previous attempt on a LEAP 15.5 VM.

To initially install grampsweb I had to edit docker-compose.yml to contain this value


as “docker-compose up -d” objected with verbiage similar to that shown below.

I encountered an issue testing email notifications so attempted to change the value of
GRAMPSWEB_EMAIL_USE_TLS= to false as explained in another post.

Yet, upon “~ $ docker-compose down”, with the edited docker-compose.yml file, I encounter this:

ERROR: The Compose file ‘./docker-compose.yml’ is invalid because:
services.grampsweb.environment.GRAMPSWEB_EMAIL_USE_TLS contains false, which is an invalid type, it should be a string, number, or a null
services.grampsweb_celery.environment.GRAMPSWEB_EMAIL_USE_TLS contains
false, which is an invalid type, it should be a string, number, or a null

Gramps 5.1.6
Gramps Web API 1.5.1
Gramps Web Frontend 24.1.2
locale: en
multi-tree: false
task queue: true

1 Like

It should be the string "false". As the error message says, environment variables are always strings. false is a special token in YAML. That Flask/Gramps Web interprets this string later as a boolean again doesn’t matter here (yet).

I know it’s not easy to get these things right, but unfortunately without having a basic understanding of how Docker-Compose, YAML, etc. works, it is not easy to set up such a complex web application.

Oh, I agree completely! :slightly_smiling_face: Clearly, getting there is a problem, being new to much of it. I am attempting to “boot strap” myself as I go. :upside_down_face:

I did find that enclosing the value in quotes (“false”) got past the error, then looking at variables showed the value was “0” (zero, no quotes). Which brings me back to an earlier question about the example docker-compose.yml, where some values were not quoted and some were.

I am also a bit concerned about the different way docker-compose (or some fucntion) appears to treat docker-compose.yml, between the Raspian/Pi4b and LEAP 15.5 installation. That it complained about the value in the former, but not the latter.

In the LEAP 15.5 case with "GRAMPSWEB_EMAIL_USE_TLS=false, ", or with “GRAMPSWEB_EMAIL_USE_TLS=“false”, after a “docker-compose down” and “docker-compose up -d” ~> docker exec grampsweb_celery env” shows:

. . .
. . .

But, throws no complaint in either case.

With GRAMPSWEB_EMAIL_USE_TLS= 0 in docker-compose.yml the environment shows:

With no complaints noted in those various evolutions.

I appreciate the efforts to help, hoping my frustration does not come through too obviously, potentially putting people off.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.