diamond-in commited on
Commit
da9fb96
·
verified ·
1 Parent(s): 05e25c2

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +11 -5
Dockerfile CHANGED
@@ -1,11 +1,9 @@
1
- # --- STAGE 1: Build Rust Backend (Using Nightly) ---
2
  FROM rustlang/rust:nightly-bookworm AS backend_build
3
  WORKDIR /app
4
  RUN apt-get update && apt-get install -y pkg-config libssl-dev
5
  COPY Cargo.toml ./
6
- # Build dependencies
7
  RUN mkdir src && echo "fn main() {}" > src/main.rs && cargo build --release
8
- # Build source
9
  COPY src ./src
10
  RUN touch src/main.rs && cargo build --release
11
 
@@ -19,6 +17,8 @@ RUN npm run build
19
 
20
  # --- STAGE 3: Final Runtime (Nix + Agent) ---
21
  FROM debian:bookworm-slim
 
 
22
  RUN apt-get update && apt-get install -y \
23
  curl xz-utils wget ca-certificates procps \
24
  libssl3 libasound2 libatk1.0-0 libc6 libcairo2 libcups2 \
@@ -30,18 +30,24 @@ RUN apt-get update && apt-get install -y \
30
  libxrandr2 libxrender1 libxss1 libxtst6 \
31
  && rm -rf /var/lib/apt/lists/*
32
 
33
- RUN useradd -m -u 1000 user
 
 
 
34
  USER user
35
  ENV HOME=/home/user
36
  WORKDIR /home/user
37
 
38
- # Install Nix
39
  RUN curl -L https://nixos.org/nix/install | sh -s -- --no-daemon
40
  ENV PATH="/home/user/.nix-profile/bin:${PATH}"
41
  ENV NIX_PATH=nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz
42
 
 
43
  COPY --from=backend_build /app/target/release/polymorphic-agent .
44
  COPY --from=frontend_build /app/frontend/dist ./frontend/dist
 
 
45
  RUN mkdir -p ./frontend/src/dynamic
46
 
47
  EXPOSE 7860
 
1
+ # --- STAGE 1: Build Rust Backend (Nightly) ---
2
  FROM rustlang/rust:nightly-bookworm AS backend_build
3
  WORKDIR /app
4
  RUN apt-get update && apt-get install -y pkg-config libssl-dev
5
  COPY Cargo.toml ./
 
6
  RUN mkdir src && echo "fn main() {}" > src/main.rs && cargo build --release
 
7
  COPY src ./src
8
  RUN touch src/main.rs && cargo build --release
9
 
 
17
 
18
  # --- STAGE 3: Final Runtime (Nix + Agent) ---
19
  FROM debian:bookworm-slim
20
+
21
+ # 1. Install system dependencies as ROOT
22
  RUN apt-get update && apt-get install -y \
23
  curl xz-utils wget ca-certificates procps \
24
  libssl3 libasound2 libatk1.0-0 libc6 libcairo2 libcups2 \
 
30
  libxrandr2 libxrender1 libxss1 libxtst6 \
31
  && rm -rf /var/lib/apt/lists/*
32
 
33
+ # 2. Create the /nix directory as ROOT and give ownership to the HF user (1000)
34
+ RUN mkdir -m 0755 /nix && useradd -m -u 1000 user && chown user /nix
35
+
36
+ # 3. Switch to the non-root user
37
  USER user
38
  ENV HOME=/home/user
39
  WORKDIR /home/user
40
 
41
+ # 4. Install Nix as the USER (it now has access to /nix)
42
  RUN curl -L https://nixos.org/nix/install | sh -s -- --no-daemon
43
  ENV PATH="/home/user/.nix-profile/bin:${PATH}"
44
  ENV NIX_PATH=nixpkgs=https://github.com/NixOS/nixpkgs/archive/nixos-unstable.tar.gz
45
 
46
+ # 5. Copy built assets
47
  COPY --from=backend_build /app/target/release/polymorphic-agent .
48
  COPY --from=frontend_build /app/frontend/dist ./frontend/dist
49
+
50
+ # 6. Create dynamic UI folder
51
  RUN mkdir -p ./frontend/src/dynamic
52
 
53
  EXPOSE 7860