File size: 1,435 Bytes
057f283 eab57c7 057f283 210f81c 057f283 98936b8 6630adc 98936b8 e58ec4f 057f283 d96a634 e1c3dc7 e368d06 e1c3dc7 057f283 98936b8 057f283 98936b8 d96a634 c0bd3b5 d96a634 210f81c 98936b8 057f283 d96a634 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV XDG_DATA_HOME=/data
ENV OPENCODE_DATA_DIR=/data
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
ca-certificates \
git \
python3 \
python3-pip \
&& rm -rf /var/lib/apt/lists/*
RUN pip3 install --no-cache-dir huggingface_hub
RUN useradd -m -u 1000 -s /bin/bash user && \
mkdir -p /data && chown -R user:user /data
USER user
WORKDIR /home/user
# 安装 opencode(直接下载 latest 二进制)
RUN ARCH=$(uname -m) && \
if [ "$ARCH" = "x86_64" ]; then ARCH="x64"; elif [ "$ARCH" = "aarch64" ]; then ARCH="arm64"; fi && \
OS=$(uname -s | tr '[:upper:]' '[:lower:]') && \
FILENAME="opencode-${OS}-${ARCH}.tar.gz" && \
URL="https://github.com/anomalyco/opencode/releases/latest/download/${FILENAME}" && \
curl --retry 3 --retry-delay 2 --max-time 60 -fsSL -o /tmp/opencode.tar.gz "${URL}" && \
tar -xzf /tmp/opencode.tar.gz -C /tmp && \
mkdir -p /home/user/.opencode/bin && \
mv /tmp/opencode /home/user/.opencode/bin/ && \
chmod +x /home/user/.opencode/bin/opencode && \
rm /tmp/opencode.tar.gz
ENV PATH="/home/user/.opencode/bin:${PATH}"
COPY --chown=user sync_to_dataset.py /home/user/sync_to_dataset.py
COPY --chown=user entrypoint.sh /home/user/entrypoint.sh
RUN chmod +x /home/user/sync_to_dataset.py /home/user/entrypoint.sh
EXPOSE 7860
CMD ["/home/user/entrypoint.sh"] |