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"]