Using runners.docker.tmpfs throws cannot load TOML value of type bool into a Go string

Describe your question in as much detail as possible:
When I try using

    [runners.docker.tmpfs]
        "/var/lib/postgresql/data" = "rw,noexec"

inside [runners.docker] (/etc/gitlab-runner/config.toml file) error is encountered - cannot load TOML value of type bool into a Go string

$ sudo gitlab-runner  verify
Runtime platform                                    arch=amd64 os=linux pid=32372 revision=febb2a09 version=15.0.0
Running in system-mode.                            
                                                   
FATAL: toml: cannot load TOML value of type bool into a Go string
  • What are you seeing, and how does that differ from what you expect to see?
    No error should be shown as per documentation.

  • Consider including screenshots, error messages, and/or other helpful visuals
    FATAL: toml: cannot load TOML value of type bool into a Go string

  • What version are you on? Are you using self-managed or GitLab.com?

$ sudo gitlab-runner  -v
Version:      15.0.0
Git revision: febb2a09
Git branch:   15-0-stable
GO version:   go1.17.7
Built:        2022-05-19T19:34:08+0000
OS/Arch:      linux/amd64
  • GitLab (Hint: /help): Using Gitlab.com not self managed. Using own specific runners deployed on a VM
  • Runner (Hint: /admin/runners): - Docker runner
  • Add the CI configuration from .gitlab-ci.yml and other configuration if relevant (e.g. docker-compose.yml)
  [runners.docker]
    [runners.docker.tmpfs]
        "/var/lib/postgresql/data" = "rw,noexec"
    tls_verify = false
    image = "python:3.7"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
    pull_policy = "if-not-present"
  • What troubleshooting steps have you already taken? Can you link to any docs or other resources so we know where you have been?
    I was following
    The Docker executor | GitLab

Tried multiple ways nothing worked. Would be great if someone can help here.

Hi Rishi,

As discussed separately, the problem appears when you define the table [runners.docker.tmpfs] before any of the [runners.docker] keys in your config.toml file.

Explicitly, following is a working approach:

[runners.docker]
    tls_verify = false
    image = "python:3.7"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
    pull_policy = "if-not-present"

    [runners.docker.tmpfs]
        "/var/lib/postgresql/data" = "rw,noexec"