# 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"]
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
docker compose exec -it tailscaled bash
# tailscale up
No test, only my toy. If you need help, please goto issues.
Content type
Image
Digest
sha256:537899504…
Size
31.6 MB
Last updated
about 3 years ago
docker pull shilazi/tailscaled:v1.48.1