57 lines
1.6 KiB
Docker
57 lines
1.6 KiB
Docker
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"]
|