From 2fe4209551f160a3729faf106d15c9972852ecb7 Mon Sep 17 00:00:00 2001 From: lapzarin Date: Mon, 28 Sep 2026 17:38:34 -0600 Subject: [PATCH] adicion de archivos para publicacion --- Dockerfile | 20 ++++++++++++++++++++ docker-compose.prod.yml | 7 +++++++ docker-compose.yml | 16 ++++++++++++++++ entrypoint.sh | 3 +++ nginx.conf | 37 +++++++++++++++++++++++++++++++++++++ 5 files changed, 83 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.prod.yml create mode 100644 docker-compose.yml create mode 100644 entrypoint.sh create mode 100644 nginx.conf diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1aa893e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +# build stage +FROM node:20 as build-stage +WORKDIR /app +COPY package.json ./ +RUN npm install +COPY . . +RUN npm run build + +FROM nginx:stable-alpine as production-stage +COPY --from=build-stage /app/dist /app +COPY nginx.conf /etc/nginx/nginx.conf + +# certificado SSL autofirmado +RUN apk add openssl; +RUN openssl req -x509 -nodes -days 365 -subj "/C=CA/ST=QC/O=Company, Inc./CN=mydomain.com" -addext "subjectAltName=DNS:mydomain.com" -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt; + +EXPOSE 80 +COPY ./entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..e4a8126 --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,7 @@ +version: "3" + +services: + server: + restart: always + environment: + VIRTUAL_HOST: wiki.erendira.tresfactorial.com diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..85c6f49 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3" + +services: + server: + build: . + networks: + - tfnetwork + logging: + driver: "json-file" + options: + max-size: 10m + max-file: 2 + +networks: + tfnetwork: + external: true \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..930f7e7 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +nginx -g "daemon off;"; \ No newline at end of file diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..1b188a7 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,37 @@ + user nginx; + worker_processes 1; + error_log /var/log/nginx/error.log warn; + pid /var/run/nginx.pid; + events { + worker_connections 1024; + } + http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log /var/log/nginx/access.log main; + sendfile on; + keepalive_timeout 65; + + gzip on; + gzip_types application/javascript text/css; + + server { + listen 80; + listen 443 ssl; + server_name localhost; + ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; + ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; + location / { + root /app; + index index.html; + try_files $uri $uri/ /index.html; + } + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + } + }