File size: 3,946 Bytes
18d84f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# Use the official Python 3.9 image as the base image
FROM python:3.9

# Expose the port
EXPOSE 7860

# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1

# Set the PYNGROK_CONFIG environment variable
ENV PYNGROK_CONFIG /tmp/pyngrok.yml

# Set the NGROK_PATH environment variable to a writable location
ENV NGROK_PATH /tmp/ngrok

# Copy requirements.txt into the container
COPY requirements.txt .

# RUN apt-get update 
# RUN apt-get install -y wget
# RUN wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
# RUN apt-get install ./google-chrome-stable_current_amd64.deb -y


# RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
# RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
# RUN apt-get -y update
# RUN apt-get install -y google-chrome-stable

# # install chromedriver
# RUN apt-get install -yqq unzip
# RUN wget -O /tmp/chromedriver.zip http://chromedriver.storage.googleapis.com/`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE`/chromedriver_linux64.zip
# RUN unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/





# RUN apt install wget -y
# RUN wget https://github.com/mozilla/geckodriver/releases/download/v0.32.0/geckodriver-v0.32.0-linux64.tar.gz
# RUN tar -xzvf geckodriver-v0.32.0-linux64.tar.gz -C /usr/local/bin
# RUN chmod +x /usr/local/bin/geckodriver
# RUN geckodriver -V


# RUN apt install firefox-esr -y
# RUN apt-get install firefox-geckodriver

# Upgrade pip and install the required packages
RUN pip install --upgrade pip && \
    pip install -r requirements.txt

# Install sudo and create the necessary directories before copying the files
RUN apt-get update && \
    apt-get install -y sudo && \
    mkdir -p /code/image

# Creates a non-root user with an explicit UID and adds permission to access the /code folder
RUN adduser -u 5678 --disabled-password --gecos "" appuser && \
    usermod -aG sudo appuser && \
    usermod -aG root appuser && \
    chown -R appuser:appuser /code

# Create the pyngrok bin directory and set the ownership and permissions for appuser
RUN mkdir -p /usr/local/lib/python3.9/site-packages/pyngrok/bin && \
    chown -R appuser:appuser /usr/local/lib/python3.9/site-packages/pyngrok/bin && \
    chmod -R 777 /usr/local/lib/python3.9/site-packages/pyngrok/bin

RUN mkdir -p /.ngrok2 && \
    chown -R appuser:appuser /.ngrok2 && \
    chmod -R 777 /.ngrok2

RUN apt-get update && \
    apt-get install -y curl

RUN echo "deb http://deb.debian.org/debian/ unstable main contrib non-free" >> /etc/apt/sources.list.d/debian.list


# RUN apt install firefox-esr && \
#     apt install geckodriver

# Set the working directory and copy the files
WORKDIR /code

# Set the ownership and permissions for the /code directory and its contents
RUN chown -R appuser:appuser /code && \
    chmod -R 777 /code

COPY . /code

# RUN chown -R appuser:appuser /code/data.csv && \
#     chmod -R 777 /code/data.csv

# Copy the pyngrok.yml configuration file
COPY pyngrok.yml /tmp/pyngrok.yml

# Set the TRANSFORMERS_CACHE environment variable to a cache directory inside /tmp
ENV TRANSFORMERS_CACHE /tmp/transformers_cache
ENV TORCH_HOME /tmp/torch_cache

USER appuser


RUN git clone https://github.com/rphrp1985/gpt4f
# WORKDIR /gpt4f
# COPY . /gpt4f
# RUN cd gpt4f
# RUN ls

# cp -R / /root/dest-folder
RUN cp -R gpt4f/* /code
RUN ls
CMD python run.py







# Start the application using pyngrok
# CMD python main.py
# Get the public IP address and display it
# RUN curl -s https://api.ipify.org | xargs echo "Public IP:"
RUN pip install gunicorn

# Start the Uvicorn server
# ENTRYPOINT ["python", "main.py"]
# CMD ["sh", "-c", "python main.py & sleep infinity"]
CMD ["gunicorn", "--bind",  "0.0.0.0:7860","run:app"]