FROM node:18-alpine WORKDIR /app # Copy package files COPY package.json package-lock.json ./ # Install all dependencies RUN npm ci --legacy-peer-deps # Copy source code COPY . . # Create vite.config.js with correct proxy settings RUN cat > vite.config.js << 'VITECONFIG' import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import path from 'path'; export default defineConfig({ plugins: [react()], resolve: { alias: { '@': path.resolve(__dirname, './src'), }, }, server: { host: '0.0.0.0', port: 80, strictPort: true, allowedHosts: ['mygta.ensup-adm.net', 'localhost'], proxy: { '/api': { target: 'http://gta-backend:3000', changeOrigin: true, secure: false, configure: (proxy, options) => { proxy.on('error', (err, req, res) => { console.log('Proxy error:', err); }); proxy.on('proxyReq', (proxyReq, req, res) => { console.log('Proxying:', req.method, req.url, '-> http://gta-backend:3000'); }); } } } } }); VITECONFIG EXPOSE 80 CMD ["npx", "vite", "--host", "0.0.0.0", "--port", "80"]