From 1e8168725e8ef7ff70907c24d1bffb1014cb7268 Mon Sep 17 00:00:00 2001 From: Benoit TELLIER Date: Tue, 8 Jul 2025 15:43:50 +0200 Subject: [PATCH] Docker packaging --- Dockerfile | 10 ++++++++++ README.md | 17 ++++++++++++++++- nginx.conf | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 Dockerfile create mode 100644 nginx.conf diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..afcf445 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM nginx:alpine +RUN apk add gzip +COPY nginx.conf /etc/nginx +COPY dist /usr/share/nginx/html + +# Record the exposed port +EXPOSE 80 + +# Before stating NGinx, re-zip all the content to ensure customizations are propagated +CMD gzip -k -r -f /usr/share/nginx/html/ && nginx -g 'daemon off;' diff --git a/README.md b/README.md index 631cbb7..d430d91 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,22 @@ You don’t have to ever use `eject`. The curated feature set is suitable for sm ### Run it with docker -More details to be supplied when available. +After compiling the project with npm (see previous section) simply run: + +``` +docker built -t linagora/twake-calendar-front . +``` + +Then edit `.env.js` in order to match your configuration then run it with: + +``` +docker run -d \ + -v $PWD/.env.example.js:/usr/share/nginx/html/.env.js \ + -p 5000:80 \ + tcal-front +``` + +And then visit [https://localhost:5000](https://localhost:5000). ## Configuring it diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..ce4e969 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,51 @@ +user nginx; +worker_processes auto; + +error_log /var/log/nginx/error.log notice; +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; + #tcp_nopush on; + + keepalive_timeout 65; + add_header Cache-Control "no-cache"; + etag on; + + # include /etc/nginx/conf.d/*.conf; + + server { + listen 80; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri $uri/ /index.html; + } + + error_page 500 502 503 504 /50x.html; + + location = /50x.html { + root /usr/share/nginx/html; + } + } + + gzip_static on; + gzip_disable "msie6"; + gzip_vary on; + gzip_proxied any; + gzip_http_version 1.1; +}