Day06,将昨日的静态页面打包

正文

今天来把昨天写的页面进行容器化的动作,首先撰写Dockerfile

# static build
FROM node:14.17.6 As Builder
WORKDIR /homelab
COPY . .
RUN npm install
RUN npm run build

# using nginx hosting
FROM nginx:latest
COPY default.conf /etc/nginx/conf.d/
COPY --from=Builder /homelab/build /usr/share/nginx/html/

根据上述的内容可以看到,因为前端的页面编译出来的结果是属於纯静态的档案,所以我们会需要搭配另外的http server进行hosting。

常见的http server 有很多种 ex. apache、httpd、Nginx、haproxy,这边使用Nginx做一个简单的搭配设定

修改/etc/nginx/conf.d/default.conf

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    #access_log  /var/log/nginx/host.access.log  main;
    location / {
        root   /usr/share/nginx/html;
        index  index.html;
        try_files $uri /index.html;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

接着执行build image的指令

docker build -t homelab-nginx:dev .

一个简单的打包就这麽完成了。

闲聊

这些reverse proxy其实都还有相当大的参数调整空间,可以用来效能调校,或是根据security规范进行特别的设定。而我这里就只是让他能跑起来而已啦XD


<<:  Day4 - numpy(3) 布林索引、转置阵列

>>:  ASP.NET MVC 从入门到放弃 (Day1) -基本语言介绍

Day29 ( 游戏设计 ) 太鼓达人

太鼓达人 教学原文参考:太鼓达人 这篇文章会大量使用「阵列」的操作,搭配「变数」、「逻辑判断」、「点...

人脸辨识-day18 人脸辨识的隐忧

在人脸辨识的兴盛下,如同科技进步一般,水能载舟,亦能覆舟,有如此多的优点也会也缺点,如先前讲的隐私权...

Day 06 : 什麽是 MLOps

各种商务情境都在思考如何融入 AI 提供更适切的智慧化服务,在Day 04 : 以资料为中心的人工智...

Day 2 - Home Lab 事前准备 - 安装篇

在 Day 1 时,我们有稍微提到了 Home Lab 可以使用一般的桌上型电脑来建置,那今天我们要...

[开发经验分享]如何中断执行中的 Task(任务)

情境 在做大数据分析时,由於需要从几千万甚至几亿笔资料中做运算,应用程序就整个不能动,若中间机器有要...