Docker部署前后端服务示例

使用Docker部署js前端

1.创建Dockerfile

在项目跟目录下创建Dockerfile文件:

# 使用nginx作为基础镜像
FROM nginx:1.19.1# 指定工作空间
WORKDIR /data/web# 将 yarn build 打包后的build文件夹添加到工作空间
ADD build build# 将项目必要文件添加到工作空间,这里我们把nginx配置文件维护在项目里,部署时直接移动配置文件,就不需要在去处理nginx配置了
COPY ./config/nginx.conf /etc/nginx/conf.d/default.conf# 暴露80端口
EXPOSE 80# 启动nginx,要用前台启动
ENTRYPOINT ["nginx", "-g", "daemon off;"]  

2.打包项目代码

假设使用yarn构建的前端

yarn build

3.打包镜像

打包最新镜像,镜像名为web,tag为latest

docker build -t web:latest . 

在这里插入图片描述
查看打包好的镜像

docker images 

在这里插入图片描述

4.启动容器

使用镜像web:latest启动容器,容器名称为my-web,端口映射到8000

docker run -d --name my-web -p 8000:80 web:latest

在这里插入图片描述

查看运行中的容器

docker ps

在这里插入图片描述

最后直接在浏览器打开 ip:8000,就可以看到web页面了

使用Docker部署后端

后端打包就更简单了,它不需要nginx环境,直接运行二进制文件就行

1.创建Dockerfile

在项目跟目录下创建Dockerfile文件:

# 使用centos作为基础镜像
FROM centos# 指定工作空间
WORKDIR /data/service# 将项目必要文件添加到工作空间
ADD config         config
ADD template       template# 将服务打包后的二进制文件添加到工作空间
ADD admin-api admin-api# 运行二进制文件启动服务
ENTRYPOINT ["./admin-api"]

2.打包镜像启动容器

除了dockerfile不一样,打包镜像和启动容器都是一样的

# 打包项目代码
go build# 打包镜像
docker build -t admin-api:latest . # 查看打包好的镜像
docker images # 使用镜像admin-api:latest启动容器,容器名称为admin-api,端口映射到8001
docker run -d --name admin-api -p 8001:80 admin-api:latest# 查看运行中的容器
docker ps

以上是docker的简单使用示例,在实际运用过程中,我们还可以把项目打包过程写进dockerfile,或结合ci让gitlab-runner来进行项目打包。打包出来的镜像,以版本号打个tag在镜像上用来区分不同版本的镜像,还可以将镜像上传到公司的镜像仓库。在部署时可以用更高阶的容器编排工具来实现高可用分布式部署。后面有会慢慢更新这些内容。

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

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

相关文章

数据结构—>带你深入了解单链表(基础篇)

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:橘橙黄又青-CSDN博客 前面我们学习了顺序表,今天我们来学习与顺序表类似的单链表 1.&#x1f3…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:透明度设置)

设置组件的透明度。 说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 opacity opacity(value: number | Resource) 设置组件的不透明度。 卡片能力: 从API version 9开始,该接口…

香橙派AIpro快速上手指南

1 前言 作为业界首款基于昇腾深度研发的AI开发板,Orange Pi AIpro无论在外观上、性能上还是技术服务支持上都非常优秀,其8/20TOPS澎湃算力是目前开发板市场中所具备的最大算力,能覆盖生态开发板者的主流应用场景,让用户实践各种创…

Web自动化测试平台开发---Automated_platform

一、项目简介 历时一个假期,Automated_platform 第一版完工,是一款基于po模式的自动化测试平台,采用后端技术为DjangoceleryRabbitMQmysql 配置mysql数据库,进行数据迁移后,运行项目后,即可成功访问http://127.0.0.1:8…

【软考】数据结构之队列和栈

目录 1.例题一1.1题目1.2 题目截图1.3 题目分析 1.例题一 1.1题目 输出受限的双端队列是指元素可以从队列的两端输入,但只能从队列的一端输出,如下图所示,若有e1,e2,e3,e4依次进入输出受限的双端队列&…

Linux——进程控制(一)进程的创建与退出

目录 一、进程创建 1.写时拷贝 2.创建多个进程 二、进程终止 1.main函数的返回值 2.bash中的$? 3.自定义退出码 4.C语言的错误码 5.错误码与退出码的区别 6.代码异常终止 7.exit函数 8.总结 一、进程创建 在之前,我们学过linux中的非常重要的函数——…

速卖通店铺营销秘籍:如何巧妙运用活动提升转化率

对于速卖通卖家而言,想要提升店铺的成交率,除了依赖付费推广外,更重要的是如何通过店铺营销来吸引和留住潜在买家。今天,我们就来深入探讨一下速卖通店铺营销的几个关键策略。 首先,我们要明确一点,速卖通平…

IDEA中的Structure模块使用详解

IDEA中的Structure模块使用详解 类方法的展示 从左往右介绍: 1、最开头的 m 标识是表示为方法,如出现 f 标识则表示为属性; 2、m后面跟着的是方法或者属性的访问修饰符: #红色关闭的锁表示为private; #圆圈表示不带…

使用Docker搭建一款实用的个人IT工具箱——It-Tools

作为程序员,在日常工作中,需要借助一些工具来提高我们工作效率,IT-Tools是为开发人员度身打造的一套便捷在线工具。它提供全面功能,使开发者能以更高效方式完成任务。经由IT-Tools,开发人员能轻松应对各类技术挑战&…

qt QRadioButton 及QButtonGroup 使用

QRadioButton 放在组合框QGroupBox中,再点击时,即使有多个QRadioButton按钮,同时选中的也就只有一个。 如下图所示, 对于多个QRadioButton,每个按钮都写一个槽函数是不太明智的选择,需要将QRadioButton放在…

「MySQL」增删查改

在操作数据库中的表时,需要先使用该数据库: use database;新增 创建表 先用 use 指定一个数据库,然后使用 create 新增一个表 比如建立一个学生表 mysql> use goods; mysql> create table student(-> name varchar(4),-> age int,-> …

IIS部署.Net 7项目

👨 作者简介:大家好,我是Taro,前端领域创作者 ✒️ 个人主页:唐璜Taro 🚀 支持我:点赞👍📝 评论 ⭐️收藏 文章目录 前言一、发布项目二、解决发布失败1.发布失败2.托管…

深入理解计算机系统笔记

1.1 嵌套的数组 当我们创建数组的数组时,数组分配和引用的一般原则也是成立的。 例如,声明 int A[5][3]; 等价于下面的声明 typedef int row3_t[3]; row3_t A[5] 要访问多维数组的元素,编译器会以数组起始为基地址, (可能需…

【Ai生态开发】Spring AI上架,打造专属业务大模型,AI开发再也不是难事!

大家好 这里是苏泽 后端是工作 ai是兴趣 对于ai的产生我的立场是拥抱ai的 是希望拿他作为提升能力的工具 那么这一篇带大家来学习如何使用ai打造一个专属的业务大模型 需求 就是说假设现在有一个 商城系统 里面有查询订单的api和获取商品购买方式的api 用户只需要输入 “…

C++二叉搜树的实现(递归和非递归)

目录 1.什么是二叉搜索树 2.二叉搜索树的查找 3.二叉搜索树插入 4.二叉搜索树的删除 1.删除的节点只有左子树或者右子树 2.删除节点左右子树都有的情况 5.代码 1.什么是二叉搜索树 左节点的值小于根节点 右节点大于根节点 左右子树也满足上面两个条件 例:…

平台工程与安全

平台工程不是为了取代DevOps,而是DevOps的进一步演进和发展。本文介绍了DevOps和平台工程,以及对于安全的意义。原文: Platform Engineering and Security: A Very Short Introduction 中国云南大理的日落 我是一名 DevOps 工程师,个人还是希…

Android WebView访问网页+自动播放视频+自动全屏+切换横屏

一、引言 近期,我发现电视家、火星直播等在线看电视直播的软件都已倒闭,而我奶奶也再无法通过这些平台看电视了。她已六十多岁,快七十岁啦。这些平台的倒下对我来说其实没有多大的影响,但是对于文化不多的她而言,生活中…

蓝桥杯算法 一.

分析&#xff1a; 本题记录&#xff1a;m个数&#xff0c;异或运算和为0&#xff0c;则相加为偶数&#xff0c;后手获胜。 分析&#xff1a; 369*99<36500&#xff0c;369*100>36500。 注意&#xff1a;前缀和和后缀和问题

【wpf】关于绑定的一点明悟

背景简介 软件功能为&#xff0c;读取一个文件夹下的所有子文件夹&#xff0c;每个文件夹对自动对应生成 一组 “按键四个勾选” 按键点击触发&#xff0c;可以发送与其对应文件夹中的一些内容。这个绑定的过程我在之前的文章有过详细的介绍&#xff0c;非常的简单。 这里回顾…

mac jupyter使用现有的python环境

mood&#xff1a;python 编程真的是在反复的与自己和解啊 本来超级的畏难情绪 读会儿书 计算机博士的书 感觉还是要坚强的。《研磨记》--一位博士生的回忆录 作者技术真的强啊 正文开始&#xff1a; 聚焦搜索&#xff0c;打开终端激活虚拟环境&#xff1a;conda activate pyt…