version:"3"services:gluetun:image:qmcgaw/gluetuncontainer_name:gluetun# line above must be uncommented to allow external containers to connect.# See https://github.com/qdm12/gluetun-wiki/blob/main/setup/connect-a-container-to-gluetun.md#external-container-to-gluetunrestart:unless-stoppedcap_add:-NET_ADMINdevices:-/dev/net/tun:/dev/net/tunvolumes:-./gluetun:/gluetunenvironment:-VPN_SERVICE_PROVIDER=airvpn-VPN_TYPE=wireguard-WIREGUARD_PRIVATE_KEY=xxx-WIREGUARD_PRESHARED_KEY=xxx-WIREGUARD_ADDRESSES=xxx-WIREGUARD_MTU=1320-SERVER_COUNTRIES=UnitedStates# See https://github.com/qdm12/gluetun-wiki/tree/main/setup#setup# Timezone for accurate log times-TZ=America/New_York# Server list updater# See https://github.com/qdm12/gluetun-wiki/blob/main/setup/servers.md#update-the-vpn-servers-list-UPDATER_PERIOD=24htailscale:container_name:tailscalecap_add:-NET_ADMIN-NET_RAWvolumes:-./tailscale/var/lib:/var/lib-./tailscale/state:/state-/dev/net/tun:/dev/net/tunnetwork_mode:"service:gluetun"restart:unless-stoppedenvironment:-TS_HOSTNAME=airvpn-exit-node-TS_AUTHKEY=xxxxxxxx-TS_EXTRA_ARGS=--login-server=https://example.com/--advertise-exit-node-TS_NO_LOGS_NO_SUPPORT=true-TS_STATE_DIR=/stateimage:tailscale/tailscale
I have solved this problem! The trick is to use two Docker containers:
Here is an example docker-compose.yml:
version: "3" services: gluetun: image: qmcgaw/gluetun container_name: gluetun # line above must be uncommented to allow external containers to connect. # See https://github.com/qdm12/gluetun-wiki/blob/main/setup/connect-a-container-to-gluetun.md#external-container-to-gluetun restart: unless-stopped cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun volumes: - ./gluetun:/gluetun environment: - VPN_SERVICE_PROVIDER=airvpn - VPN_TYPE=wireguard - WIREGUARD_PRIVATE_KEY=xxx - WIREGUARD_PRESHARED_KEY=xxx - WIREGUARD_ADDRESSES=xxx - WIREGUARD_MTU=1320 - SERVER_COUNTRIES=United States # See https://github.com/qdm12/gluetun-wiki/tree/main/setup#setup # Timezone for accurate log times - TZ=America/New_York # Server list updater # See https://github.com/qdm12/gluetun-wiki/blob/main/setup/servers.md#update-the-vpn-servers-list - UPDATER_PERIOD=24h tailscale: container_name: tailscale cap_add: - NET_ADMIN - NET_RAW volumes: - ./tailscale/var/lib:/var/lib - ./tailscale/state:/state - /dev/net/tun:/dev/net/tun network_mode: "service:gluetun" restart: unless-stopped environment: - TS_HOSTNAME=airvpn-exit-node - TS_AUTHKEY=xxxxxxxx - TS_EXTRA_ARGS=--login-server=https://example.com/ --advertise-exit-node - TS_NO_LOGS_NO_SUPPORT=true - TS_STATE_DIR=/state image: tailscale/tailscale