ARG BASE_VERSION=15.1 FROM ghcr.io/daemonless/base-exec:${BASE_VERSION} ARG FREEBSD_ARCH=amd64 ARG PACKAGES="tailscale" ARG UPSTREAM_URL="https://api.github.com/repos/tailscale/tailscale/releases/latest" ARG UPSTREAM_JQ=".tag_name" # --- Metadata (Injected by Generator) --- LABEL org.opencontainers.image.title="{{ title }}" \ org.opencontainers.image.description="{{ description }}" \ org.opencontainers.image.source="{{ repo_url }}" \ org.opencontainers.image.url="{{ web_url }}" \ org.opencontainers.image.documentation="https://tailscale.com/kb/" \ org.opencontainers.image.licenses="BSD-3-Clause" \ org.opencontainers.image.vendor="daemonless" \ org.opencontainers.image.authors="daemonless" \ io.daemonless.category="{{ category }}" \ {%- if ports %} io.daemonless.port="{{ ports[0].port }}" \ {%- endif %} {%- if volumes %} io.daemonless.volumes="{{ volumes | map(attribute='path') | join(',') }}" \ {%- endif %} {%- if mlock %} org.freebsd.jail.allow.mlock="required" \ {%- endif %} io.daemonless.arch="${FREEBSD_ARCH}" \ io.daemonless.pkg-source="pkg" \ io.daemonless.upstream-url="${UPSTREAM_URL}" \ io.daemonless.upstream-jq="${UPSTREAM_JQ}" \ io.daemonless.healthcheck-url="tailscale-status" \ io.daemonless.packages="${PACKAGES}" # Install Tailscale from FreeBSD packages RUN pkg update && \ pkg install -y ${PACKAGES} && \ mkdir -p /app && pkg info tailscale | sed -n 's/.*Version.*: *//p' > /app/version && \ pkg clean -ay && \ rm -rf /var/cache/pkg/* /var/db/pkg/repos/* # Create config and runtime directories RUN mkdir -p /config /var/run/tailscale && \ chmod 700 /config # Copy service definition and init scripts COPY root/ / RUN chmod +x /daemonless/libexec/tailscaled /daemonless/init.d/* CMD ["/daemonless/libexec/tailscaled"] # Make scripts executable RUN chmod +x /healthz # --- Expose (Injected by Generator) --- {%- if ports %} EXPOSE {{ ports | map(attribute='port') | join(' ') }} {%- endif %} # --- Volumes (Injected by Generator) --- {%- if volumes %} VOLUME {{ volumes | map(attribute='path') | join(' ') }} {%- endif %}