dsmueller commited on
Commit
bf63ed9
1 Parent(s): 5053bdf

Update Dockerfile and pyproject.toml

Browse files
Files changed (2) hide show
  1. Dockerfile +16 -26
  2. pyproject.toml +0 -1
Dockerfile CHANGED
@@ -4,26 +4,21 @@ FROM python:3.11.5-bookworm
4
  # The next few lines come from here: https://huggingface.co/docs/hub/spaces-sdks-docker#permissions
5
  # Set up a new user named "user" with user ID 1000
6
  RUN useradd -m -u 1000 user
7
-
8
- # Switch to the "user" user
9
  USER user
10
 
11
  # Set home to the user's home directory
12
- ENV HOME=/data \
13
- PATH=/data/.local/bin:$PATH
14
-
15
- # Change permissions for to read/write/execute
16
- # RUN mkdir $HOME/app
17
- # RUN chmod 777 $HOME/app
18
-
19
- # Set the working directory to the user's home directory
20
  WORKDIR $HOME
21
 
22
- # Install poetry
23
- RUN pip3 install poetry
 
 
 
24
 
25
- # Copy only the necessary files for installing dependencies
26
- COPY --chown=user pyproject.toml poetry.lock ./
27
 
28
  # Disable virtual environments creation by Poetry
29
  # as the Docker container itself is an isolated environment
@@ -32,17 +27,16 @@ RUN poetry config virtualenvs.in-project true
32
  # Set the name of the virtual environment
33
  RUN poetry config virtualenvs.path $HOME/.venv
34
 
35
- # Install dependencies
36
- RUN poetry install
37
-
38
- # Set the .venv folder as the virtual environment directory
39
  ENV PATH="$HOME/.venv/bin:$PATH"
40
 
41
- # Copy the current directory contents into the container
 
 
 
42
  COPY --chown=user . $HOME
43
 
44
- # Make a port available to the world outside this container
45
- # The EXPOSE instruction informs Docker that the container listens on the specified network ports at runtime. Your container needs to listen to Streamlit’s (default) port 8501.
46
  EXPOSE 8501
47
 
48
  # The HEALTHCHECK instruction tells Docker how to test a container to check that it is still working. Your container needs to listen to Streamlit’s (default) port 8501:
@@ -52,8 +46,4 @@ HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
52
  WORKDIR $HOME/scripts
53
 
54
  # An ENTRYPOINT allows you to configure a container that will run as an executable. Here, it also contains the entire streamlit run command for your app, so you don’t have to call it from the command line
55
- ENTRYPOINT ["streamlit", "run", "Start.py", "--server.port=8501", "--server.address=0.0.0.0"]
56
-
57
- # Execute with:
58
- # docker build -t <image_name> .
59
- # docker run -p 8501:8501 <image_name>
 
4
  # The next few lines come from here: https://huggingface.co/docs/hub/spaces-sdks-docker#permissions
5
  # Set up a new user named "user" with user ID 1000
6
  RUN useradd -m -u 1000 user
 
 
7
  USER user
8
 
9
  # Set home to the user's home directory
10
+ ENV HOME=/home/user \
11
+ PATH=/home/user/.local/bin:$PATH
 
 
 
 
 
 
12
  WORKDIR $HOME
13
 
14
+ # Try and run pip command after setting the user with `USER user` to avoid permission issues with Python
15
+ # RUN pip install --no-cache-dir --upgrade pip
16
+
17
+ # Install Poetry
18
+ RUN pip3 install poetry==1.7.1
19
 
20
+ # Copy poetry files
21
+ COPY --chown=user pyproject.toml poetry.lock* $HOME
22
 
23
  # Disable virtual environments creation by Poetry
24
  # as the Docker container itself is an isolated environment
 
27
  # Set the name of the virtual environment
28
  RUN poetry config virtualenvs.path $HOME/.venv
29
 
30
+ # Set environment variables
 
 
 
31
  ENV PATH="$HOME/.venv/bin:$PATH"
32
 
33
+ # Install dependencies using Poetry
34
+ RUN poetry install --no-dev
35
+
36
+ # Copy the rest of your application code
37
  COPY --chown=user . $HOME
38
 
39
+ # Expose the port Streamlit runs on
 
40
  EXPOSE 8501
41
 
42
  # The HEALTHCHECK instruction tells Docker how to test a container to check that it is still working. Your container needs to listen to Streamlit’s (default) port 8501:
 
46
  WORKDIR $HOME/scripts
47
 
48
  # An ENTRYPOINT allows you to configure a container that will run as an executable. Here, it also contains the entire streamlit run command for your app, so you don’t have to call it from the command line
49
+ ENTRYPOINT ["streamlit", "run", "Start.py", "--server.port=8501", "--server.address=0.0.0.0"]
 
 
 
 
pyproject.toml CHANGED
@@ -3,7 +3,6 @@ name = "aerospace-chatbot"
3
  version = "0.1.0"
4
  description = ""
5
  authors = ["dsmueller <dsm@danmueller.pro>"]
6
- readme = "README.md"
7
 
8
  [tool.poetry.dependencies]
9
  python = "^3.11"
 
3
  version = "0.1.0"
4
  description = ""
5
  authors = ["dsmueller <dsm@danmueller.pro>"]
 
6
 
7
  [tool.poetry.dependencies]
8
  python = "^3.11"