summaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authorPaweł Bernaciak <pawelbernaciak@zohomail.eu>2023-10-29 16:07:04 +0100
committerPaweł Bernaciak <pawelbernaciak@zohomail.eu>2023-10-29 16:07:04 +0100
commitb7e09de3cb8709e5456b996984b5de8161202ef6 (patch)
tree7fc0647a9b34b42c760c1a125c90fa221a6578bf /frontend
parenteb943058e89d38278393bc9da8d9df551be05a30 (diff)
Dockerize app for deployment and development
Diffstat (limited to 'frontend')
-rw-r--r--frontend/Dockerfile25
-rw-r--r--frontend/dev.Dockerfile9
-rw-r--r--frontend/nginx.conf12
-rw-r--r--frontend/vite.config.ts4
4 files changed, 49 insertions, 1 deletions
diff --git a/frontend/Dockerfile b/frontend/Dockerfile
new file mode 100644
index 0000000..0b93a16
--- /dev/null
+++ b/frontend/Dockerfile
@@ -0,0 +1,25 @@
+FROM node:21-alpine as builder
+
+WORKDIR /app
+
+COPY package.json ./
+COPY package-lock.json ./
+COPY src ./src/
+COPY index.html ./
+COPY public ./
+COPY .env ./
+COPY postcss.config.js ./
+COPY tailwind.config.js ./
+COPY tsconfig.json ./
+COPY tsconfig.node.json ./
+COPY vite.config.ts ./
+
+RUN npm ci
+RUN npm run build
+
+FROM nginx:latest
+
+WORKDIR /app
+
+COPY --from=builder /app/dist ./
+COPY ./nginx.conf /etc/nginx/conf.d/default.conf \ No newline at end of file
diff --git a/frontend/dev.Dockerfile b/frontend/dev.Dockerfile
new file mode 100644
index 0000000..3afc332
--- /dev/null
+++ b/frontend/dev.Dockerfile
@@ -0,0 +1,9 @@
+FROM node:21-alpine
+
+WORKDIR /app
+
+COPY package.json ./
+COPY package-lock.json ./
+
+RUN npm install
+CMD ["npm", "run", "dev"] \ No newline at end of file
diff --git a/frontend/nginx.conf b/frontend/nginx.conf
new file mode 100644
index 0000000..6599254
--- /dev/null
+++ b/frontend/nginx.conf
@@ -0,0 +1,12 @@
+server {
+ listen 80;
+ location / {
+ root /app;
+ try_files $uri /index.html;
+ }
+
+ location /api {
+ rewrite /api(.*) $1 break;
+ proxy_pass http://backend;
+ }
+} \ No newline at end of file
diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts
index dd8afab..e24c640 100644
--- a/frontend/vite.config.ts
+++ b/frontend/vite.config.ts
@@ -4,9 +4,11 @@ import react from '@vitejs/plugin-react'
// https://vitejs.dev/config/
export default defineConfig({
server: {
+ port: 80,
+ host: true,
proxy: {
'/api': {
- target: 'http://localhost:5102',
+ target: 'http://backend:5102/',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ''),
}