1- # Use a specific version of Ubuntu as the base image
2- FROM ubuntu:24.04
3-
4- # Set environment variables
5- ENV DEBIAN_FRONTEND=noninteractive \
6- TZ="Etc/UTC" \
7- PATH="/root/.local/bin/:$PATH"
8-
9- # Install minimal runtime dependencies
10- RUN apt-get update && \
11- apt-get install -y \
12- python3 \
13- python3-pip \
14- python3-venv \
15- postgresql-client \
16- software-properties-common \
17- tzdata \
18- ffmpeg \
19- curl \
20- unzip \
21- git && \
22- # Add the PPA and install audiowaveform
23- add-apt-repository ppa:chris-needham/ppa && \
24- apt-get update && \
25- apt-get install -y audiowaveform && \
26- # Install UV
27- curl -sSL https://astral.sh/uv/install.sh -o /uv-installer.sh && \
28- sh /uv-installer.sh && \
29- rm /uv-installer.sh && \
30- # Install Node.js
31- curl -fsSL https://deb.nodesource.com/setup_23.x | bash - && \
32- apt-get install -y nodejs && \
33- # Clean up
34- apt-get clean && \
35- rm -rf /var/lib/apt/lists/*
36-
37- # Set working directory
38- WORKDIR /app
39-
40- # Copy only the files needed for dependency installation and runtime
41- COPY . .
42-
43- # Copy environment variables for initial build
44- # We use dynamic environment variables at runtime
45- # No .env file needed during build
46-
47- # Install node dependencies and build frontend
48- RUN npm ci && \
49- npm install && \
50- npm run build
51-
52- # Ensure entrypoint script is executable
53- RUN chmod +x docker-entrypoint.sh
54-
55- # Expose port
56- EXPOSE 3000
57-
58- # Remove environment variables file after build
59- # No need to remove .env as we don't create it
60-
61- # Define default command
1+ # Use a specific version of Ubuntu as the base image
2+ FROM ubuntu:24.04
3+
4+ # Set environment variables
5+ ENV DEBIAN_FRONTEND=noninteractive \
6+ TZ="Etc/UTC" \
7+ PATH="/root/.local/bin/:$PATH"
8+
9+ # Install minimal runtime dependencies
10+ RUN apt-get update && \
11+ apt-get install -y \
12+ python3 \
13+ python3-pip \
14+ python3-venv \
15+ postgresql-client \
16+ software-properties-common \
17+ tzdata \
18+ ffmpeg \
19+ curl \
20+ unzip \
21+ git && \
22+ # Add the PPA and install audiowaveform
23+ add-apt-repository ppa:chris-needham/ppa && \
24+ apt-get update && \
25+ apt-get install -y audiowaveform && \
26+ # Install UV
27+ curl -sSL https://astral.sh/uv/install.sh -o /uv-installer.sh && \
28+ sh /uv-installer.sh && \
29+ rm /uv-installer.sh && \
30+ # Install Node.js
31+ curl -fsSL https://deb.nodesource.com/setup_23.x | bash - && \
32+ apt-get install -y nodejs && \
33+ # Clean up
34+ apt-get clean && \
35+ rm -rf /var/lib/apt/lists/*
36+
37+ # Set working directory
38+ WORKDIR /app
39+
40+ # Copy only the files needed for dependency installation and runtime
41+ COPY . .
42+
43+ # Copy environment variables for initial build
44+ # We use dynamic environment variables at runtime
45+ # No .env file needed during build
46+
47+ # Install node dependencies and build frontend
48+ RUN npm ci && \
49+ npm install && \
50+ npm run build
51+
52+ # Ensure entrypoint script is executable
53+ RUN chmod +x docker-entrypoint.sh
54+
55+ # Expose port
56+ EXPOSE 3000
57+
58+ # Remove environment variables file after build
59+ # No need to remove .env as we don't create it
60+
61+ # Define default command
62+
6263CMD ["./docker-entrypoint.sh" ]
0 commit comments