✨ feat(docker): add Docker configuration files

This commit is contained in:
2024-12-04 16:54:02 +00:00
parent b84d177158
commit fe2789a215
4 changed files with 125 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
# compiled output
.vscode
node_modules
dist
npm-debug.log
.npmrc
# git
.git
.gitignore
.github
# code formatter
.eslintrc
.eslintignore
.editorconfig
.huskyrc
.lintstagedrc.json
.prettierrc
# test
jest.config.js
# docker
Dockerfile
docker-compose.yml
.dockerignore
+37
View File
@@ -0,0 +1,37 @@
ARG PRODUCTION_IMAGE=nginx:alpine
ARG BASE_IMAGE=node:lts
# --------------> The development image
FROM $BASE_IMAGE AS development
ENV NODE_ENV=development
COPY --chown=1000:1000 . /workspaces/m-tartari.github.io
WORKDIR /workspaces/m-tartari.github.io
USER 1000:1000
CMD [ "sleep", "infinity" ]
# --------------> The production build stage
FROM $BASE_IMAGE AS production-build
ENV NODE_ENV=production
COPY . /app
WORKDIR /app
RUN npm ci --omit=dev
RUN npm run build:prod
# --------------> The production image
FROM ${PRODUCTION_IMAGE} AS production
# Remove default nginx website
RUN rm -rf html; mkdir html
COPY --from=production-build /app/dist /usr/share/nginx/html
# COPY .htpasswd /usr/share/nginx/html/.htpasswd
COPY ./nginx.conf /etc/nginx/
RUN chmod -R o+r /usr/share/nginx/html
WORKDIR /usr/share/nginx
ENTRYPOINT ["nginx", "-g", "daemon off;"]
+13
View File
@@ -0,0 +1,13 @@
version: '3.8'
services:
app:
image: git.m-tartari.eu/m-tartari.github.io
build:
context: .
dockerfile: Dockerfile
target: production
container_name: m-tartari.github.io
restart: unless-stopped
ports:
- '8080:8080'
+48
View File
@@ -0,0 +1,48 @@
user nginx;
worker_processes auto;
events { worker_connections 1024; }
http {
server {
server_tokens off;
listen 8080;
root /usr/share/nginx/html;
include /etc/nginx/mime.types;
location / {
# # This sets the authentication realm name
# auth_basic "Restricted Access";
# # This specifies the location of the .htpasswd file
# auth_basic_user_file /usr/share/nginx/html/.htpasswd;
try_files $uri $uri/ /index.html;
}
gzip on;
gzip_vary on;
gzip_http_version 1.0;
gzip_comp_level 5;
gzip_types
application/atom+xml
application/javascript
application/json
application/rss+xml
application/vnd.ms-fontobject
application/x-font-ttf
application/x-web-app-manifest+json
application/xhtml+xml
application/xml
font/opentype
image/svg+xml
image/x-icon
text/css
text/plain
text/x-component;
gzip_proxied no-cache no-store private expired auth;
gzip_min_length 256;
gunzip on;
}
}