anurag629 commited on
Commit
3fbe195
·
1 Parent(s): d2319bb

updated docker file to reduce docker image size

Browse files
Files changed (1) hide show
  1. Dockerfile +17 -25
Dockerfile CHANGED
@@ -1,7 +1,4 @@
1
- # Use a smaller base image
2
- FROM python:3.8-slim
3
-
4
- # Install required packages
5
  RUN apt-get update && apt-get install -y --no-install-recommends \
6
  bzip2 \
7
  g++ \
@@ -13,36 +10,31 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
13
  wget \
14
  python3-tk \
15
  ffmpeg && \
16
- apt-get clean && \
17
  rm -rf /var/lib/apt/lists/*
18
 
19
- # Create a non-root user
20
- RUN useradd -m -u 1000 user
 
21
 
22
- # Set environment variables
 
 
 
23
  ENV HOME=/home/user \
24
- TMP_DIR=/tmp/app-temp \
25
- PATH=/home/user/.local/bin:$PATH
26
 
27
- # Set the working directory
28
  WORKDIR $HOME/app
29
 
30
- # Copy the application code
31
  COPY --chown=user . $HOME/app
32
 
33
- # Switch to the non-root user
34
- USER user
 
 
 
 
 
35
 
36
- # Install Python dependencies in a temporary directory
37
- RUN mkdir $TMP_DIR && \
38
- pip install --no-cache-dir --upgrade -r $HOME/app/requirements.txt -t $TMP_DIR && \
39
- rm -rf $TMP_DIR/__pycache__ && \
40
- mv $TMP_DIR/* $HOME/app/ && \
41
- rm -rf $TMP_DIR
42
 
43
- # Clean up unnecessary files for a smaller image size
44
- RUN rm -rf /tmp/* && \
45
- chmod -R 777 $HOME
46
 
47
- # Command to run the application
48
- CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]
 
1
+ # Install required packages as root
 
 
 
2
  RUN apt-get update && apt-get install -y --no-install-recommends \
3
  bzip2 \
4
  g++ \
 
10
  wget \
11
  python3-tk \
12
  ffmpeg && \
 
13
  rm -rf /var/lib/apt/lists/*
14
 
15
+ WORKDIR /code
16
+
17
+ COPY ./requirements.txt /code/requirements.txt
18
 
19
+ RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
20
+
21
+ RUN useradd -m -u 1000 user
22
+ USER user
23
  ENV HOME=/home/user \
24
+ PATH=/home/user/.local/bin:$PATH
 
25
 
 
26
  WORKDIR $HOME/app
27
 
 
28
  COPY --chown=user . $HOME/app
29
 
30
+ # Minimize image size with sudo command and give permission to user
31
+ RUN (apt-get autoremove -y; \
32
+ apt-get autoclean -y; \
33
+ rm -rf /var/lib/apt/lists/*; \
34
+ echo "user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers; \
35
+ chown -R user:user $HOME; \
36
+ chmod -R 777 $HOME)
37
 
38
+ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]
 
 
 
 
 
39
 
 
 
 
40