71 lines
2.1 KiB
Docker
71 lines
2.1 KiB
Docker
ARG COYOTE_VERSION
|
|
FROM docker/sandbox-templates:shell-docker
|
|
|
|
ARG COYOTE_VERSION
|
|
ARG TARGETARCH
|
|
|
|
ENV PATH="/home/agent/.cargo/bin:/home/agent/.local/bin:${PATH}"
|
|
|
|
USER root
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
jq curl git \
|
|
build-essential pkg-config \
|
|
cmake \
|
|
clang libclang-dev \
|
|
musl-tools \
|
|
libssl-dev \
|
|
pandoc \
|
|
bzip2 \
|
|
nano && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN set -euo pipefail; \
|
|
USQL_VERSION=0.21.4; \
|
|
case "${TARGETARCH}" in \
|
|
amd64) USQL_ARCH=amd64 ;; \
|
|
arm64) USQL_ARCH=arm64 ;; \
|
|
*) echo "Unsupported TARGETARCH: ${TARGETARCH}" >&2; exit 1 ;; \
|
|
esac; \
|
|
TMPDIR=$(mktemp -d); \
|
|
curl -fsSL --retry 3 \
|
|
"https://github.com/xo/usql/releases/download/v${USQL_VERSION}/usql_static-${USQL_VERSION}-linux-${USQL_ARCH}.tar.bz2" \
|
|
-o "$TMPDIR/usql.tar.bz2"; \
|
|
tar -xjf "$TMPDIR/usql.tar.bz2" -C "$TMPDIR"; \
|
|
install -m 0755 "$TMPDIR/usql_static" /usr/local/bin/usql; \
|
|
rm -rf "$TMPDIR"
|
|
|
|
USER 1000
|
|
|
|
RUN curl -LsSf https://astral.sh/uv/install.sh | sh && \
|
|
printf '#!/bin/sh\nexec uv tool run "$@"\n' > "$HOME/.local/bin/uvx" && \
|
|
chmod +x "$HOME/.local/bin/uvx"
|
|
|
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \
|
|
sh -s -- -y --default-toolchain stable --profile minimal && \
|
|
. "$HOME/.cargo/env" && \
|
|
cargo install --locked iwec && \
|
|
cargo install --locked ast-grep
|
|
|
|
USER root
|
|
|
|
RUN set -euo pipefail; \
|
|
case "${TARGETARCH}" in \
|
|
amd64) MUSL_TARGET=x86_64-unknown-linux-musl ;; \
|
|
arm64) MUSL_TARGET=aarch64-unknown-linux-musl ;; \
|
|
*) echo "Unsupported TARGETARCH: ${TARGETARCH}" >&2; exit 1 ;; \
|
|
esac; \
|
|
TMPDIR=$(mktemp -d); \
|
|
curl -fsSL --retry 3 \
|
|
"https://github.com/Dark-Alex-17/coyote/releases/download/v${COYOTE_VERSION}/coyote-${MUSL_TARGET}.tar.gz" \
|
|
-o "$TMPDIR/coyote.tar.gz"; \
|
|
tar -xzf "$TMPDIR/coyote.tar.gz" -C "$TMPDIR"; \
|
|
install -m 0755 "$TMPDIR/coyote" /home/agent/.cargo/bin/coyote; \
|
|
chown 1000:1000 /home/agent/.cargo/bin/coyote; \
|
|
rm -rf "$TMPDIR"
|
|
|
|
USER 1000
|
|
|
|
ENTRYPOINT ["coyote"]
|