# --- STAGE 1: Build the Vue application --- FROM node:20.11.1 AS builder # Set build-time environment variables for your API URLs ENV VITE_BASE_URL="https://apioil.edwineames.com" ENV VITE_AUTO_URL="https://apiauto.edwineames.com" ENV VITE_MONEY_URL="https://apimoney.edwineames.com" ENV VITE_AUTHORIZE_URL="https://apicard.edwineames.com" ENV VITE_VOIPMS_URL="https://apiphone.edwineames.com" ENV VITE_VOIPMS_TOKEN="my_secret_token" WORKDIR /app COPY package.json ./ # --- THE FIX IS HERE --- # 1. Install ALL dependencies (including devDependencies like vue-tsc) RUN npm install # 2. Copy the rest of your source code COPY . . # 3. Now run the build, which will succeed because vue-tsc is installed RUN npm run build # --- STAGE 2: Serve the built files with Nginx --- FROM nginx:stable-alpine # Copy the static files from the 'builder' stage COPY --from=builder /app/dist /usr/share/nginx/html # Copy your custom Nginx configuration COPY nginx/default.conf /etc/nginx/conf.d/default.conf # Tell the world that port 80 is now listening EXPOSE 80 # Start Nginx when the container launches CMD ["nginx", "-g", "daemon off;"]