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
 | 
					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 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
 | 
					# vim: ft=nginx
 | 
				
			||||||
server {
 | 
					server {
 | 
				
			||||||
    listen 80;
 | 
					    listen       80;
 | 
				
			||||||
    listen [::]:80;
 | 
					    listen [::]:80;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # =====MATRIX WELL-KNOWN FILES=====
 | 
				
			||||||
    # Used for server federation
 | 
					    # Used for server federation
 | 
				
			||||||
    location ~^/\.well-known/matrix/server$ {
 | 
					    location = /.well-known/matrix/server {
 | 
				
			||||||
        charset utf-8;
 | 
					        charset utf-8;
 | 
				
			||||||
        default_type application/json;
 | 
					        default_type application/json;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        if ($request_method = 'GET') {
 | 
					        if ($request_method = 'GET') {
 | 
				
			||||||
            add_header Access-Control-Allow-Origin '*';
 | 
					            add_header Access-Control-Allow-Origin '*';
 | 
				
			||||||
            add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS';
 | 
					            add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS';
 | 
				
			||||||
| 
						 | 
					@ -28,11 +29,10 @@ server {
 | 
				
			||||||
        return 405;
 | 
					        return 405;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    location ~^/\.well-known/matrix/client$ {
 | 
					    location = /.well-known/matrix/client {
 | 
				
			||||||
        charset utf-8;
 | 
					        charset utf-8;
 | 
				
			||||||
        default_type application/json;
 | 
					        default_type application/json;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        if ($request_method = 'GET') {
 | 
					        if ($request_method = 'GET') {
 | 
				
			||||||
            add_header Access-Control-Allow-Origin '*';
 | 
					            add_header Access-Control-Allow-Origin '*';
 | 
				
			||||||
            add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS';
 | 
					            add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS';
 | 
				
			||||||
| 
						 | 
					@ -51,4 +51,19 @@ server {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return 405;
 | 
					        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">
 | 
					<html lang="en">
 | 
				
			||||||
    <meta charset="utf-8" />
 | 
					    <head>
 | 
				
			||||||
    <meta name="viewport" content="width=device-width" />
 | 
					        <meta charset="utf-8" />
 | 
				
			||||||
 | 
					        <meta name="viewport" content="width=device-width" />
 | 
				
			||||||
 | 
					    </head>
 | 
				
			||||||
    <body>
 | 
					    <body>
 | 
				
			||||||
        <h1>Hi!</h1>
 | 
					        <h1>Hi!</h1>
 | 
				
			||||||
    </body>
 | 
					    </body>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue