Docker 前后端部署流程

news/2024/9/22 11:09:23/文章来源:https://www.cnblogs.com/fengpeng123/p/18425056

Docker 前后端部署流程

1 Docker基本知识

2 后端部署

使用tomcat容器部署后端

# 创建数据卷,映射出tomcat容器的webapps目录和logs目录
mkdir -p /usr/local/dockertest/tomcat/webapps /usr/local/dockertest/tomcat/logs

设置tomcat容器日志方式

tomcat默认logs下没有catalina.out

只有使用startup.sh启动才会输出catalina.out。

但是Docker如果以startup.sh启动,启动后可能会立即退出,这时Docker需要一个后台执行程序才会保持容器不退出。

cd /usr/local/dockertest/tomcat
vim run.sh

run.sh 注意粘贴第一行会缺少内容

#第一行内容不能少
#!/bin/bash
bash /usr/local/tomcat/bin/startup.sh
tail -f /usr/local/tomcat/logs/catalina.out

构建自定义镜像,创建 tomcat dockerfile

cd /usr/local/dockertest/tomcat
vim tomcat_dockerfile

tomcat_dockerfile 注意粘贴第一行会缺少内容

#dockerfile文件内容:
FROM tomcat:8
#指定容器中工作目录
WORKDIR /app
#将主机当前目录下的tomcat日志run.sh启动脚本 添加到容器中
ADD run.sh /usr/local/tomcat
#添加脚本执行权限
RUN chmod +x /usr/local/tomcat/run.sh
#开放容器中端口
EXPOSE 8080
#指定容器运行命令 设置tomcat启动方式
CMD ["/usr/local/tomcat/run.sh"]

启动容器

#构建自定义镜像(记得在/usr/local/dockertest/tomcat目录下运行) 
# -t:指定镜像名和标签 -f:指定dockerfile文件  . :表示在当前目录下查找对应的dockerfile来构建镜像
docker build -t tomcat8:01 -f tomcat_dockerfile . 
#运行自定义的容器
docker run -d -p 8089:8080 -v /usr/local/dockertest/tomcat/webapps:/usr/local/tomcat/webapps -v /usr/local/dockertest/tomcat/logs:/usr/local/tomcat/logs --restart always --name tomcat_test tomcat8:01

部署war

#打印日志
cd /usr/local/dockertest/tomcat/logs
tail -f catalina.out -n -1000#部署war
cd /usr/local/dockertest/tomcat/webapps
#拖动war#记得访问路径,需要加上war包的名称, 例如 ip:端口/prof/xxx
http://8.137.103.17:8089/prof/hello

3 前端部署

使用nginx容器部署前端

# 创建nginx 文件夹 
mkdir -p /usr/local/dockertest/nginx/app /usr/local/dockertest/nginx/conf 

构建自定义镜像,创建 nginx dockerfile

cd /usr/local/dockertest/nginx
vim nginx_dockerfile

nginx_dockerfile 注意粘贴第一行会缺少内容

FROM nginx:1.21.5
# 工作目录,后面把vue文件放这里面
WORKDIR /app
EXPOSE 80
CMD ["nginx","-g","daemon off;"] #nginx在前台开启一个进程,可以访问

构建自定义nginx镜像

docker build -t nginx:01 -f nginx_dockerfile . 

自定义nginx.conf

cd /usr/local/dockertest/nginx/conf 
vim nginx.conf 

nginx.conf 注意粘贴第一行会缺少内容,最后一行会少了 }

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;#tcp_nopush     on;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;#前端文件路径location / {root /app/dist;index index.html;autoindex on;}}include /etc/nginx/conf.d/*.conf;
}

启动容器

docker run -d -p 91:80 -v /usr/local/dockertest/nginx/app:/app -v /usr/local/dockertest/nginx/conf/nginx.conf:/etc/nginx/nginx.conf --name nginx_test --restart always nginx:01 

部署vue项目dist

cd /usr/local/dockertest/nginx/app
# 扔包dist

浏览器访问

http://8.137.103.17:91/

#查看镜像
docker images
#删除镜像
docker rmi -f 镜像id

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/801423.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring原理基础

Spring 高级 1 容器与Bean 1.1 接口容器 1.1.1 BeanFactory是什么 @SpringBootApplication public class ShowApplication {public static void main(String[] args) {ConfigurableApplicationContext context = SpringApplication.run(ShowApplication.class, args);/*** 1、…

springboot+vite 商品管理

SpringBoot + Vue3 +MySql5.7 +JDK8 一、 SpringBoot项目搭建 1 SpringBoot概述 1.1 SpringBoot 概念 SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻 辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而…

SaaS业务架构:业务能力分析

大家好,我是汤师爷~ 今天聊聊SaaS业务架构的业务能力分析。 业务能力概述 简单来说,业务能力是企业“做某事的能力”。 业务能力描述了企业当前和未来应对挑战的能力,即企业能做什么或需要做什么。业务能力建模的关键在于定义了企业做什么,而不是如何做(由业务流程描述)。…

Redis常见使用场景

Redis常见使用场景

学习vue——ref和$refs

一、获取dom 二、获取子组件的方法

正方形计数 题解

题意简述 给出一个 \(n \times n\) 的格点平面,有 \(q\) 次询问,求有多少正方形以 \((x, y)\) 为某一顶点,满足这个正方形顶点均在格点上,且边长为有理数。 \(l \leq 10^5\),\(q \leq 5 \times 10^5\)。 题目分析 看到边长为有理数,想到「毕达哥拉斯三元组」("Pyth…

《AI系统:原理与架构》于华为HC大会2024正式发布

2024年9月21日,《AI系统:原理与架构》新书发布会在上海世博馆华为HC大会顺利举办。本书由华为昇腾技术专家、B站AI科普博主ZOMI酱和哈工大软件学院副院长苏统华教授联合编写,是领域内AI系统方面填补空白的重磅之作 发布会上,《AI系统:原理与架构》的作者、编辑代表分别介绍…

南沙C++信奥老师解一本通题:1372:小明的账单

​【题目描述】小明在一次聚会中,不慎遗失了自己的钱包,在接下来的日子,面对小明的将是一系列的补卡手续和堆积的账单… 在小明的百般恳求下,老板最终同意延缓账单的支付时间。可老板又提出,必须从目前还没有支付的所有账单中选出面额最大和最小的两张,并把他们付清。还没…

.Net Core 页面Tag Helpers不提示,颜色也没有变化

没弄明白具体哪里出的问题,按老外的说法,这俩截图中的选项切换一下,并且重启VS2022,就好了https://stackoverflow.com/questions/75558595/intellisense-in-razor-cshtml-files-not-working-visual-studio-2022

解决方案 | 为什么搜狗输入法打不出符号了以前我打平方?输入平方即可出现 的候选词

按照: 更多设置---------》属性设置------->高级------------->符号大全开启。