Spaces:
Sleeping
Sleeping
FROM python:3.11-slim-bookworm AS base | |
## Basis ## | |
ENV ENV=prod \ | |
PORT=9099 | |
# Install GCC and build tools. | |
# These are kept in the final image to enable installing packages on the fly. | |
RUN apt-get update && \ | |
apt-get install -y gcc build-essential curl git && \ | |
apt-get clean && \ | |
rm -rf /var/lib/apt/lists/* | |
RUN apt-get update && apt-get install -y wget unzip openssh-client procps nodejs npm | |
ARG PIP_OPTIONS='-i https://mirrors.aliyun.com/pypi/simple/' | |
ARG ENABLE_OSS_MOUNT="" | |
RUN pip install -U pip pysocks ${PIP_OPTIONS} | |
# Install Chrome Driver | |
RUN mkdir /app | |
RUN cd /app/ && \ | |
wget https://storage.googleapis.com/chrome-for-testing-public/136.0.7103.92/linux64/chromedriver-linux64.zip && \ | |
unzip chromedriver-linux64.zip && \ | |
rm chromedriver-linux64.zip | |
ENV CHROME_DRIVER_PATH=/app/chromedriver-linux64/chromedriver | |
RUN if [ "$ENABLE_OSS_MOUNT" = "true" ]; then \ | |
apt-get update && \ | |
apt-get install -y gdebi-core mime-support && \ | |
cd /tmp && \ | |
wget https://gosspublic.alicdn.com/ossfs/ossfs_1.91.6_ubuntu22.04_amd64.deb && \ | |
gdebi ossfs_1.91.6_ubuntu22.04_amd64.deb -n && \ | |
rm ossfs_1.91.6_ubuntu22.04_amd64.deb && \ | |
apt-get clean && \ | |
rm -rf /var/lib/apt/lists/*; \ | |
fi | |
FROM base as runner | |
WORKDIR /app | |
# Install Python dependencies | |
COPY ./requirements.txt . | |
RUN pip3 install uv ${PIP_OPTIONS} | |
RUN uv pip install --system -r requirements.txt --no-cache-dir ${PIP_OPTIONS} | |
# Copy the application code | |
RUN echo "start install aworld" | |
RUN mkdir -p /app/lib | |
RUN cd /app/lib && git clone https://github.com/inclusionAI/AWorld.git | |
RUN cd /app/lib/AWorld && git checkout framework_upgrade_aworldserver_gaia && pip install -r aworld/requirements.txt ${PIP_OPTIONS} && python setup.py install | |
RUN npx playwright install chrome --with-deps --no-shell | |
RUN cd /app | |
# Layer on for other components | |
FROM runner AS app | |
WORKDIR /app | |
COPY . . | |
# Expose the port | |
ENV HOST="0.0.0.0" | |
ENV PORT="9099" | |
# if we already installed the requirements on build, we can skip this step on run | |
ENTRYPOINT [ "bash", "start.sh" ] | |