FROM archlinux:latest ARG SHAKA_PACKAGER_URL="https://github.com/shaka-project/shaka-packager/releases/download/v2.6.1/packager-linux-x64" ARG UNSHACKLE_REPO_URL ARG UNSHACKLE_APP_DIR="/opt/unshackle" ENV LANG=C.UTF-8 \ LC_ALL=C.UTF-8 \ TS_STATE_DIR=/var/lib/tailscale \ TS_SOCKET=/var/run/tailscale/tailscaled.sock \ START_TAILSCALED=1 \ DOCKER_HOST=unix:///tmp/docker.sock \ UNSHACKLE_APP_DIR="${UNSHACKLE_APP_DIR}" RUN pacman -Syu --noconfirm && \ pacman -S --noconfirm --needed \ aria2 \ bash \ ca-certificates \ curl \ docker \ fish \ fuse3 \ git \ iproute2 \ iptables \ less \ procps-ng \ python \ rclone \ tailscale \ uv && \ pacman -Scc --noconfirm RUN mkdir -p /var/lib/tailscale /var/run/tailscale /workspace "${UNSHACKLE_APP_DIR}" RUN curl -L "${SHAKA_PACKAGER_URL}" -o /tmp/packager-linux-x64 && \ install -Dm755 /tmp/packager-linux-x64 /usr/local/bin/packager && \ ln -sf /usr/local/bin/packager /usr/local/bin/shaka-packager && \ rm -f /tmp/packager-linux-x64 RUN git clone "${UNSHACKLE_REPO_URL}" "${UNSHACKLE_APP_DIR}" WORKDIR ${UNSHACKLE_APP_DIR} RUN uv sync --frozen COPY docker/entrypoint.sh /usr/local/bin/container-entrypoint.sh COPY docker/fish/unshackle-venv.fish /etc/fish/conf.d/unshackle-venv.fish COPY docker/fish/docker-host.fish /etc/fish/conf.d/docker-host.fish RUN chmod +x /usr/local/bin/container-entrypoint.sh ENV PATH="${UNSHACKLE_APP_DIR}/.venv/bin:${PATH}" ENTRYPOINT ["/usr/local/bin/container-entrypoint.sh"] CMD ["fish"]