opencode / Dockerfile
jamesw853's picture
Update Dockerfile
eab57c7 verified
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"]