Severian commited on
Commit
27b5a39
·
verified ·
1 Parent(s): 6516462

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +25 -15
Dockerfile CHANGED
@@ -1,21 +1,32 @@
1
  # Base Python image with correct version
2
  FROM python:3.12-slim-bookworm AS base
3
 
4
- WORKDIR /app/api
5
-
6
- # Install Poetry and configure
7
  ENV POETRY_VERSION=1.8.4 \
8
  POETRY_NO_INTERACTION=1 \
9
  POETRY_VIRTUALENVS_CREATE=true \
10
  POETRY_VIRTUALENVS_IN_PROJECT=true \
11
  POETRY_CACHE_DIR=/tmp/poetry_cache \
12
- POETRY_REQUESTS_TIMEOUT=15
13
 
14
  # Install system dependencies
15
- RUN apt-get update && apt-get install -y --no-install-recommends \
16
- gcc g++ libc-dev libffi-dev libgmp-dev libmpfr-dev libmpc-dev \
17
- && pip install --no-cache-dir "poetry==${POETRY_VERSION}" \
18
- && rm -rf /var/lib/apt/lists/*
 
 
 
 
 
 
 
 
 
 
 
 
 
19
 
20
  # Create non-root user
21
  RUN useradd -m -u 1000 user
@@ -25,15 +36,14 @@ WORKDIR /app
25
  RUN mkdir -p api web /data/storage && \
26
  chown -R user:user /app /data
27
 
28
- # Copy Poetry configuration files
29
- COPY --chown=user api/pyproject.toml api/poetry.lock api/poetry.toml ./api/
 
30
 
31
- # Install dependencies
32
  WORKDIR /app/api
33
- RUN poetry install --no-root --no-dev --no-cache
34
-
35
- # Copy application code
36
- COPY --chown=user . .
37
 
38
  # Create symlink for persistent storage
39
  RUN ln -s /data/storage /app/api/storage
 
1
  # Base Python image with correct version
2
  FROM python:3.12-slim-bookworm AS base
3
 
4
+ # Set shared environment variables
 
 
5
  ENV POETRY_VERSION=1.8.4 \
6
  POETRY_NO_INTERACTION=1 \
7
  POETRY_VIRTUALENVS_CREATE=true \
8
  POETRY_VIRTUALENVS_IN_PROJECT=true \
9
  POETRY_CACHE_DIR=/tmp/poetry_cache \
10
+ PYTHONDONTWRITEBYTECODE=1
11
 
12
  # Install system dependencies
13
+ RUN apt-get update && apt-get install -y \
14
+ curl \
15
+ git \
16
+ gcc \
17
+ python3-dev \
18
+ libgmp-dev \
19
+ libmpfr-dev \
20
+ libmpc-dev \
21
+ && rm -rf /var/lib/apt/lists/* \
22
+ && pip install --no-cache-dir "poetry==${POETRY_VERSION}"
23
+
24
+ # Pull official images
25
+ FROM langgenius/dify-web:latest AS web
26
+ FROM langgenius/dify-api:latest AS api
27
+
28
+ # Final stage
29
+ FROM base
30
 
31
  # Create non-root user
32
  RUN useradd -m -u 1000 user
 
36
  RUN mkdir -p api web /data/storage && \
37
  chown -R user:user /app /data
38
 
39
+ # Copy from official images
40
+ COPY --from=web --chown=user /app/web /app/web/
41
+ COPY --from=api --chown=user /app/api /app/api/
42
 
43
+ # Install API dependencies using Poetry
44
  WORKDIR /app/api
45
+ COPY --from=api --chown=user /app/api/pyproject.toml /app/api/poetry.lock /app/api/poetry.toml ./
46
+ RUN poetry install --no-root --no-dev
 
 
47
 
48
  # Create symlink for persistent storage
49
  RUN ln -s /data/storage /app/api/storage