54 lines
1.2 KiB
Plaintext
54 lines
1.2 KiB
Plaintext
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"]
|