From 9773484f120235e9b5b23ad7295459cb65cf7766 Mon Sep 17 00:00:00 2001 From: Julio Cesar Date: Wed, 20 Aug 2025 16:14:17 +0200 Subject: [PATCH] docker deployment --- .dockerignore | 6 ++++++ maplibre-docker/Dockerfile | 34 +++++++++++++++++++++++++++++++++ maplibre-docker/Dockerfile.back | 13 +++++++++++++ maplibre-docker/compose.yml | 22 +++++++++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 .dockerignore create mode 100644 maplibre-docker/Dockerfile create mode 100644 maplibre-docker/Dockerfile.back create mode 100644 maplibre-docker/compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..df20e51 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.git +node_modules +test-backend/node_modules +**/node_modules +dist +build \ No newline at end of file diff --git a/maplibre-docker/Dockerfile b/maplibre-docker/Dockerfile new file mode 100644 index 0000000..48f8a23 --- /dev/null +++ b/maplibre-docker/Dockerfile @@ -0,0 +1,34 @@ +# Build stage +FROM node:24-alpine3.20 AS build + +WORKDIR /app + +# Variables for build +ARG VITE_API_URL + +# Copy package files +COPY ./package*.json . + +# Install dependencies +RUN npm install + +# Copy source code +COPY . . + +# Build the application +RUN npm run build + +# Production stage +FROM nginx:stable-alpine + +# Copy built assets from build stage +COPY --from=build /app/dist /usr/share/nginx/html + +# Copy nginx configuration if needed +# COPY ./nginx.conf /etc/nginx/conf.d/default.conf + +# Expose port 80 +EXPOSE 80 + +# Start nginx +CMD ["nginx", "-g", "daemon off;"] diff --git a/maplibre-docker/Dockerfile.back b/maplibre-docker/Dockerfile.back new file mode 100644 index 0000000..3a1a667 --- /dev/null +++ b/maplibre-docker/Dockerfile.back @@ -0,0 +1,13 @@ +FROM node:24-alpine AS build +WORKDIR /app +COPY test-backend/package*.json ./test-backend/ +RUN npm --prefix test-backend install # installs dev deps for build +COPY . . +RUN npm --prefix test-backend run build +FROM node:24-alpine AS runtime +WORKDIR /app +COPY test-backend/package*.json ./ +RUN npm install --omit=dev # only prod deps for runtime +COPY --from=build /app/test-backend/dist ./dist +EXPOSE 3001 +CMD ["npm", "start"] \ No newline at end of file diff --git a/maplibre-docker/compose.yml b/maplibre-docker/compose.yml new file mode 100644 index 0000000..8dc7260 --- /dev/null +++ b/maplibre-docker/compose.yml @@ -0,0 +1,22 @@ +services: + maplibre: + build: + context: .. + dockerfile: maplibre-docker/Dockerfile + ports: + - "127.0.0.1:5173:80" + networks: + - dokploy-network + + backend: + build: + context: .. + dockerfile: maplibre-docker/Dockerfile.back + ports: + - "127.0.0.1:3001:3001" + networks: + - dokploy-network + +networks: + dokploy-network: + driver: bridge