From b7e09de3cb8709e5456b996984b5de8161202ef6 Mon Sep 17 00:00:00 2001 From: Paweł Bernaciak Date: Sun, 29 Oct 2023 16:07:04 +0100 Subject: Dockerize app for deployment and development --- frontend/Dockerfile | 25 +++++++++++++++++++++++++ frontend/dev.Dockerfile | 9 +++++++++ frontend/nginx.conf | 12 ++++++++++++ frontend/vite.config.ts | 4 +++- 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 frontend/Dockerfile create mode 100644 frontend/dev.Dockerfile create mode 100644 frontend/nginx.conf (limited to 'frontend') 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/, ''), } -- cgit v1.2.3