tailscale-dev/docker-guide-code-examples

No serve config

Opened this issue · 0 comments

It looks like container doesn't recognize serve config json file in my case.

For example, I have the next docker-compose.yml:

services:
  tailscale:
    image: tailscale/tailscale:latest
    container_name: ts-media
    hostname: media
    environment:
      - TS_AUTHKEY=tskey-client-***?ephemeral=true
      - TS_SERVE_CONFIG=/config/serve.json
      - TS_EXTRA_ARGS=--advertise-tags=tag:container
    volumes:
      - /dev/net/tun:/dev/net/tun
      - ./config:/config
    cap_add:
      - net_admin
      - sys_module
    restart: unless-stopped

serve.json looks like this:

{
  "TCP": {
    "443": {
      "HTTPS": true
    }
  },
  "Web": {
    "${TS_CERT_DOMAIN}:443": {
      "Handlers": {
        "/": {
          "Proxy": "http://127.0.0.1:8083"
        }
      }
    }
  },
  "AllowFunnel": {
    "${TS_CERT_DOMAIN}:443": false
  }
}

After successful container launch serve doesn't work. When I try to check serve status I have an error:

$ docker exec -it ts-media tailscale serve status
No serve config

$ docker exec -it ts-media tailscale serve status -json
{}

But config file actually present by target path inside the container:

$ docker exec -it ts-media ls config
serve.json

docker exec -it ts-media cat config/serve.json
{
    "TCP": {
        "443": {
            "HTTPS": true
        }
    },
    "Web": {
        "${TS_CERT_DOMAIN}:443": {
            "Handlers": {
                "/": {
                    "Proxy": "http://127.0.0.1:8083"
                }
            }
        }
    },
    "AllowFunnel": {
        "${TS_CERT_DOMAIN}:443": false
    }
}

What am I doing wrong?