FROM ubuntu:22.04 as base

# COPY sources.list /etc/apt/sources.list
RUN apt update && apt -y upgrade
RUN apt install -y gcc make wget perl zlib1g-dev libffi-dev libbz2-dev libreadline-dev liblzma-dev libsqlite3-dev
#RUN wget https://www.python.org/ftp/python/3.10.8/Python-3.10.8.tgz
#RUN wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1d.tar.gz
#download local
COPY deps/Python-3.10.8.tgz /
COPY deps/OpenSSL_1_1_1d.tar.gz /

RUN cd / && tar -zxf OpenSSL_1_1_1d.tar.gz
RUN cd openssl-OpenSSL_1_1_1d && ./config --prefix=/usr/local/openssl && make && make install

RUN rm -f /usr/bin/openssl /usr/lib64/openssl /usr/lib64/libssl.so \
        && ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl \
        && ln -s /usr/local/openssl/include/openssl /usr/include/openssl \
        && ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so \
        && echo "/usr/local/openssl/lib" >> /etc/ld.so.conf \
        && ldconfig -v

RUN cd / && tar -zxf Python-3.10.8.tgz
RUN cd Python-3.10.8/ \
        && ./configure --enable-optimizations --prefix=/usr/local/python3.10 --with-openssl=/usr/local/openssl \
        && make  && make install
# && rm -rf /Python-3.10.8.tgz /Python-3.10.8 /OpenSSL_1_1_1d.tar.gz /openssl-OpenSSL_1_1_1d

FROM nvidia/cuda:12.1.0-runtime-ubuntu22.04

COPY deps/sources.list /etc/apt/sources.list
RUN apt update && apt -y upgrade

RUN apt install -y gcc wget perl vim net-tools libpq-dev

RUN useradd -m aigc && usermod -s /bin/bash aigc && usermod -G sudo aigc

COPY --from=base /usr/local/openssl /usr/local/openssl
COPY --from=base /usr/local/python3.10 /usr/local/python3.10

RUN rm -f /usr/bin/openssl /usr/lib64/openssl /usr/lib64/libssl.so \
        && ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl \
        && ln -s /usr/local/openssl/include/openssl /usr/include/openssl \
        && ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so \
        && echo "/usr/local/openssl/lib" >> /etc/ld.so.conf \
        && ldconfig -v

RUN ln -s /usr/local/python3.10/bin/python3.10 /usr/local/bin/python3 \
        && ln -s /usr/local/python3.10/bin/pip3.10 /usr/local/bin/pip3 \
        && ln -s /usr/local/bin/python3 /usr/bin/python \
        && echo "export PATH=\$PATH:/usr/local/python3.10/bin" >> /etc/profile \
        && rm -f /usr/bin/pip && ln -s /usr/local/bin/pip3 /usr/bin/pip 

ADD deps/punkt.tar.gz /usr/local/python3.10/nltk_data/tokenizers/
ADD deps/averaged_perceptron_tagger.tar.gz /usr/local/python3.10/nltk_data/taggers/

WORKDIR /home/aigc/
RUN mkdir .beai

RUN apt update && apt install -y libreoffice

RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
COPY deps/requirements.txt requirements.txt
RUN pip install -r requirements.txt
# RUN python -m pip install --upgrade pip && pip install faiss-gpu

COPY . .

# WORKDIR /home/aigc/src/scenarios/spdsvb

# USER aigc

EXPOSE 5000
EXPOSE 8001
EXPOSE 8002

CMD ["bash"]