Updated Dockerfile to build frontend
							parent
							
								
									9af76b09f2
								
							
						
					
					
						commit
						f9acc17263
					
				|  | @ -0,0 +1,2 @@ | |||
| node_modules/ | ||||
| dist/ | ||||
							
								
								
									
										21
									
								
								Dockerfile
								
								
								
								
							
							
						
						
									
										21
									
								
								Dockerfile
								
								
								
								
							|  | @ -1,3 +1,24 @@ | |||
| # ======Building the project===== | ||||
| FROM node:17.2.0 AS builder | ||||
| 
 | ||||
| WORKDIR /usr/src/app | ||||
| 
 | ||||
| # Install Node dependencies | ||||
| COPY package.json yarn.lock ./ | ||||
| RUN yarn install | ||||
| 
 | ||||
| # Copy over source code & build project | ||||
| COPY astro.config.mjs tsconfig.json ./ | ||||
| COPY src/ ./src | ||||
| RUN yarn run build | ||||
| 
 | ||||
| 
 | ||||
| # =====Packaging inside an Nginx container===== | ||||
| FROM nginx:1.21.4-alpine | ||||
| 
 | ||||
| # Copy over the Nginx config files | ||||
| COPY nginx.conf /etc/nginx/nginx.conf | ||||
| COPY default.conf.template /etc/nginx/templates/default.conf.template | ||||
| 
 | ||||
| # Copy over build artifacts | ||||
| COPY --from=builder /usr/src/app/dist /usr/share/nginx/html | ||||
|  |  | |||
|  | @ -1,14 +1,15 @@ | |||
| # vim: ft=nginx | ||||
| server { | ||||
|     listen 80; | ||||
|     listen       80; | ||||
|     listen [::]:80; | ||||
| 
 | ||||
| 
 | ||||
|     # =====MATRIX WELL-KNOWN FILES===== | ||||
|     # Used for server federation | ||||
|     location ~^/\.well-known/matrix/server$ { | ||||
|     location = /.well-known/matrix/server { | ||||
|         charset utf-8; | ||||
|         default_type application/json; | ||||
| 
 | ||||
| 
 | ||||
|         if ($request_method = 'GET') { | ||||
|             add_header Access-Control-Allow-Origin '*'; | ||||
|             add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; | ||||
|  | @ -28,11 +29,10 @@ server { | |||
|         return 405; | ||||
|     } | ||||
| 
 | ||||
|     location ~^/\.well-known/matrix/client$ { | ||||
|     location = /.well-known/matrix/client { | ||||
|         charset utf-8; | ||||
|         default_type application/json; | ||||
| 
 | ||||
| 
 | ||||
|         if ($request_method = 'GET') { | ||||
|             add_header Access-Control-Allow-Origin '*'; | ||||
|             add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; | ||||
|  | @ -51,4 +51,19 @@ server { | |||
| 
 | ||||
|         return 405; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     # =====FRONTEND HOSTING===== | ||||
|     location / { | ||||
|         root   /usr/share/nginx/html; | ||||
|         index  index.html; | ||||
|     } | ||||
| 
 | ||||
|     error_page  404              /404.html; | ||||
| 
 | ||||
|     # redirect server error pages to the static page /50x.html | ||||
|     error_page   500 502 503 504  /50x.html; | ||||
|     location = /50x.html { | ||||
|         root   /usr/share/nginx/html; | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -0,0 +1,52 @@ | |||
| # vim: ft=nginx | ||||
| server { | ||||
|     listen 80; | ||||
|     listen [::]:80; | ||||
| 
 | ||||
|     # Used for server federation | ||||
|     location = /.well-known/matrix/server { | ||||
|         charset utf-8; | ||||
|         default_type application/json; | ||||
| 
 | ||||
|         if ($request_method = 'GET') { | ||||
|             add_header Access-Control-Allow-Origin '*'; | ||||
|             add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; | ||||
|             add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type, Authorization'; | ||||
| 
 | ||||
|             return 200 '{"m.server":"${MATRIX_SERVER}"}'; | ||||
|         } | ||||
| 
 | ||||
|         if ($request_method = 'OPTIONS') { | ||||
|             add_header Access-Control-Allow-Origin '*'; | ||||
|             add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; | ||||
|             add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type, Authorization'; | ||||
|             add_header 'Content-Length' 0; | ||||
|             return 204; | ||||
|         } | ||||
| 
 | ||||
|         return 405; | ||||
|     } | ||||
| 
 | ||||
|     location = /.well-known/matrix/client { | ||||
|         charset utf-8; | ||||
|         default_type application/json; | ||||
| 
 | ||||
|         if ($request_method = 'GET') { | ||||
|             add_header Access-Control-Allow-Origin '*'; | ||||
|             add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; | ||||
|             add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type, Authorization'; | ||||
| 
 | ||||
|             return 200 '{"m.homeserver":{"base_url":"${MATRIX_CLIENT_SERVER}"}}'; | ||||
|         } | ||||
| 
 | ||||
|         if ($request_method = 'OPTIONS') { | ||||
|             add_header Access-Control-Allow-Origin '*'; | ||||
|             add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; | ||||
|             add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type, Authorization'; | ||||
|             add_header 'Content-Length' 0; | ||||
|             return 204; | ||||
|         } | ||||
| 
 | ||||
|         return 405; | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,31 @@ | |||
| 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; | ||||
| 
 | ||||
|     keepalive_timeout  65; | ||||
| 
 | ||||
|     gzip  on; | ||||
| 
 | ||||
|     # This order is important, as the Matrix matches should be evaluated first | ||||
|     include /etc/nginx/conf.d/default.conf; | ||||
| } | ||||
|  | @ -1,6 +1,8 @@ | |||
| <html lang="en"> | ||||
|     <meta charset="utf-8" /> | ||||
|     <meta name="viewport" content="width=device-width" /> | ||||
|     <head> | ||||
|         <meta charset="utf-8" /> | ||||
|         <meta name="viewport" content="width=device-width" /> | ||||
|     </head> | ||||
|     <body> | ||||
|         <h1>Hi!</h1> | ||||
|     </body> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue