Sign inSign up

shilazi/tailscaled

By shilazi

Updated about 3 years ago

https://github.com/shilazi/tailscale

Image
0

187

shilazi/tailscaled repository overview

A simple image for tailscale

Dockerfile

# syntax = docker/dockerfile:1.4

FROM golang:1.21-alpine3.18

ENV GO111MODULE=on
ENV PROJECT_NAME=tailscale
ENV GIT_REPO=https://github.com/shilazi/${PROJECT_NAME}.git

WORKDIR /go/src/

RUN set -x \
    && apk add git ca-certificates

# https://hub.docker.com/r/docker/dockerfile
RUN <<eot cat > /tmp/entrypoint.sh
#!/bin/sh

_log_conf="/var/lib/tailscale/tailscaled.log.conf"

if test ! -f "\${_log_conf}"; then
    cat << EOF | tee "\${_log_conf}"
{
    "Collection": "tailnode.log.tailscale.io",
    "PrivateID": "\$(openssl rand -hex 32)",
    "PublicID": "\$(openssl rand -hex 32)"
}
EOF
fi

/usr/sbin/tailscaled --cleanup \${FLAGS}
/usr/sbin/tailscaled \
    --state=/var/lib/tailscale/tailscaled.state \
    --socket=/run/tailscale/tailscaled.sock \
    --port=\${PORT} \${TUN} \${FLAGS}
eot

RUN set -x \
    && git clone --depth=1 ${GIT_REPO} \
    && cd ${PROJECT_NAME}/ \
    && go mod tidy

RUN set -x \
    && cd ${PROJECT_NAME}/ \
    && ./build_dist.sh tailscale.com/cmd/tailscale \
    && ./build_dist.sh tailscale.com/cmd/tailscaled \
    && mv tailscale tailscaled /tmp/ \
    && chmod +x /tmp/entrypoint.sh

# ---------- 8< ----------

FROM alpine:3.18.3

ENV PORT="41641"
ENV TUN="--tun=tailscale0"
ENV FLAGS="-no-logs-no-support"

# tailscaled
ENV TS_DEBUG_FIREWALL_MODE="auto"
ENV TS_DEBUG_ALWAYS_USE_DERP="false"
ENV TS_DEBUG_LINUX_SKIP_POLICY_ROUTING="false"
# tailscale up
ENV TS_DEBUG_NETFILTER_OFF="false"
ENV TS_DEBUG_LOGIN_SERVER="https://controlplane.tailscale.com"

RUN set -x \
    && apk add --no-cache bash ca-certificates \
        openssl nftables iptables iproute2 ip6tables iputils

COPY --from=0 /tmp/entrypoint.sh /entrypoint.sh
COPY --from=0 /tmp/tailscale /usr/bin/tailscale
COPY --from=0 /tmp/tailscaled /usr/sbin/tailscaled

VOLUME ["/var/lib/tailscale/", "/run/tailscale/", "/lib/modules/", "/dev/net/"]

EXPOSE 41641/udp

ENTRYPOINT ["/entrypoint.sh"]

Usage

tailscaled
version: '3.9'

services:
  tailscaled:
    image: shilazi/tailscaled:v1.48.1
    container_name: tailscaled
    environment:
      # tailscaled
      PORT: "41641"
      TUN: "--tun=tailscale0"
      FLAGS: "-no-logs-no-support"
      TS_DEBUG_FIREWALL_MODE: "auto"
      TS_DEBUG_ALWAYS_USE_DERP: "false"
      TS_DEBUG_LINUX_SKIP_POLICY_ROUTING: "false"
      # tailscale up
      TS_DEBUG_NETFILTER_OFF: "false"
      TS_DEBUG_LOGIN_SERVER: "https://controlplane.tailscale.com"
    network_mode: host
    privileged: true
    volumes:
    - ./data/:/var/lib/tailscale/
    - /run/tailscale/:/run/tailscale/
    - /lib/modules/:/lib/modules/
    - /dev/net/:/dev/net/
    restart: unless-stopped
tailscale
docker compose exec -it tailscaled bash
# tailscale up

Doubt

No test, only my toy. If you need help, please goto issues.

Tag summary

Content type

Image

Digest

sha256:537899504

Size

31.6 MB

Last updated

about 3 years ago

docker pull shilazi/tailscaled:v1.48.1