docker前端部署

39 阅读3分钟

原因

很晚了,还是记录一下,因为前后端分离,前端工作相对独立,所以前端部署这块也需要了解和掌握,为什么用docker,因为docker很方便,并且不会对服务器造成污染。在进行下面步骤之前,我希望你能提前了解几个比较重要的点 (什么是docker,什么是镜像,什么是容器,宿主机与容器如何挂载<这样做的原因>,以及nginx的一些了解) ,括号中的内容很重要,对于理解下面的步骤起到很关键的作用。

步骤

1.先在服务器拉取nginx的镜像
2.然后通过挂载的方式将宿主机的目录或文件 与 容器中nginx对应的目录或文件进行挂载并启动
docker run --name college-frontend -d -p 80:80 -v /demo/nginx/log:/var/log/nginx -v /demo/nginx/html:/usr/share/nginx/html -v /demo/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx
/demo/nginx是宿主机新建的目录,只需要在宿主机该目录下的conf目录下先建个空的nginx.conf进行映射即可,其他目录在docker启动后刷新即可看到映射好的其他目录。
看着挺长挺唬人,如果你对挂载已经了解那么就很容易理解这么做的原因,这样就可以直接修改宿主机的文件映射到容器中,很方便。(这里要强调的是,因为你用的nginx的版本可能不同,所以不要照抄我的路径映射,需要去dockerhub看对应的文档)
3.如果启动不成功(docker ps可以查看是否启动成功)则说明宿主机的nginx配置文件还没有写好,给出对应的参考

user root;
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        charset utf-8;

        location / {
                root   /usr/share/nginx/html;
                try_files $uri $uri/ /index.html;
                index  index.html index.htm;
        }
        
        location /prod-api/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://后端ip:端口/;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

ok,你需要重点注意一个地方,root /usr/share/nginx/html; 这里的配置可能是不同的,根据你的nginx镜像的版本来的。

尾声

怎么说呢,现在的环境越来越要求你把全流程都要掌握,数据可视化要会,小程序要会,前端工程化要会,webpack要懂,vite要知道,vue要会,react也要了解,后端最好也懂,会springboot,最好还要懂点springcloud,linux和docker也得了解点,怎么说呢,在软件行业,业务也要学,技术也要学,加油吧少年。
想起了过年和老爷子聊天谈起的一句小时候学过的话:
人最宝贵的是生命,生命每个人只有一次。人的一生应当这样度过:当回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞愧;在临终之际,他能够说:‘我的整个生命和全部精力,都献给了世界上最壮丽的事业——为人类的解放而斗争。’