【Kubernetes】第二十三篇 - 布署 nodejs 后端项目(上)

news2024/11/27 1:14:38

一,前言

上一篇,介绍了 MySQL 服务的部署;

本篇,介绍 nodejs 后端项目的布署(将后端项目构建成为 docker 镜像,并推送至镜像仓库);


二,准备项目

创建后端项目,并上传到 git

创建 nodejs 项目并上传

git init
git commit -m "first commit"
git remote add origin git@gitee.com:BraveWangDev/cicd-backend.git
git push -u origin "master"

Dockerfile 配置说明

FROM node:12.16-alpine // 继承 node:12.16-alpine 镜像
ADD . /app   // 将当前目录拷贝到/app中
WORKDIR /app // 设置工作目录
EXPOSE 7001  // 暴露 7001 端口
CMD ["npm", "start"] // 执行命令 npm start

实现:将代码拷贝到静态文件目录,启动 nginx 服务;


三,新建 jenkins 项目

创建项目

  • 创建自由风格 jenkins 项目:cicd-backend

配置 git

  • 设置 git 源码地址、配置 git 私钥(之前已完成配置)

地址:git@gitee.com:BraveWangDev/cicd-backend.git

公钥给 gitee、私钥给 jenkins

配置 docker 参数

  • 配置 DOCKER_LOGIN_USERNAME 和 DOCKER_LOGIN_PASSWORD

配置构建环境和脚本

构建中可以使用 node 环境,可以使用 node 命令

构建使用 shell 脚本:

#!/bin/bash
time=$(date "+%Y%m%d%H%M%S")
npm install --registry=https://registry.npm.taobao.org
docker build -t 47.94.92.122:8082/cicd-backend:$time .
// docker login -u $DOCKER_LOGIN_USERNAME -p $DOCKER_LOGIN_PASSWORD 47.94.92.122:8082
docker login -u admin -p Wz@19880818 47.94.92.122:8082
docker push 47.94.92.122:8082/cicd-backend:$time

测试构建

拉取代码、构建镜像成功,登录 docker,推送镜像到私有仓库,查看推送结果

备注:后端项目不需要 npm build 打包

私有库查看

私有库查看:cicd-backend:20220107150926

目前已经将后端项目构建成为 docker 镜像,并推送至镜像仓库了

后面,需要从镜像仓库中拉取最新的镜像,部署到集群上去


四,结尾

本篇,创建后端项目并上传,创建并配置 jenkins 项目,完成将后端项目构建成为 docker 镜像,并推送至镜像仓库;

下一篇,后端项目连接数据库;

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

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

相关文章

8、LSM树

一、前言 最近在调研NoSQL数据库,发现RocksDB、LevelDB、HBase以及Prometheus等,其底层的存储引擎都是基于LSM树,于是决定花时间彻底吃透LSM树这一数据结构。 不幸的是,在查阅资料学习的过程中,发现网上各种文章汗牛…

浅谈对Promise的理解以及在工作中的应用

浅谈对Promise的理解以及在工作中的应用Promise的概念背景知识JavaScript的同步和异步JavaScript事件循环回调函数进行异步操作解决方案:PromisePromise 在工作中的运用创建PromisePromise封装AJAXPromise链式操作Promise.all()Promise.race()async和await总结Promi…

轻松转换文档:antennahouse/Office Server Document Converter

关于 Office Server 文档转换器 (OSDC)破解版 无需 Microsoft Office 或 Adob​​e 软件即可快速准确地转换文档。 Office Server 文档转换器 (OSDC) 会将您在 Microsoft Office(Word、Excel、PowerPoint)中创建的重要文档转换为高质量的 PDF 或图像格式…

国内32位MCU在电机控制上的应用方案

电机(Electric machinery,俗称“马达”)是依据电磁感应定律,实现电能转换或传递的一种电磁装置,其主要作用是产生驱动转矩,为用电器或各类机械提供动力。电机作为工业世界的动力之源,几乎用于所…

ThinkPHP 6.1 模板篇之布局与继承

本文主要讲述ThinkPHP 6.1版本模板几种布局的方法和如何实现继承, 可以与《ThinkPHP 6.1 模板篇之文件加载》结合来看。 模板布局 布局方式有两种可以实现。 布局方法1 开启配置 默认情况下,不支持模版布局功能,需要在配置文件中开启&…

如何快速通过PMP考试?

我建议准备的最短时间至少一个月,我用了一个半月,我每天集中精力备考大约4个小时,大家可以根据自己的专注力的长短去调节每天的备考时间。 准备5月的,还没备考的,现在开始也来得及。5月没有报名的可以准备8月的&#…

【Linux系统编程】05:多进程

多进程 OVERVIEW多进程一、进程创建1.创建1个子进程2.创建多个子进程二、进程控制1.进程结束2.进程等待3.子进程操作14.子进程操作2三、进程体系1.守护进程2.进程调度程序:一种已经编译好的、存在磁盘中的二进制文件(脚本为普通文件)。进程&a…

超图iServer扩展开发记录Restlet 3

HTTP 请求在达到 REST 应用对象,交给资源实现类处理的时候,先要解析 HTTP 请求中的参数,然后才会进入业务逻辑进行处理。参数解析的工作由参数解析器(Decoder)进行,即可以实现将请求参数转换为 Java 对象。…

qt tcp通讯

TCP 协议(Transmission Control Protocol)全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。tcp服务端使用QTcpServer、QTcpSocket。tcp客户端使用QTcpSocket1.在工程文件(工程文件.pro)中的第一行添加network 如QT core gui …

WeSpeaker支持C++部署链路

WeSpeaker正式更新C部署链路,推理引擎使用OnnxRuntime,支持从语音中提取Speaker Embedding信息,代码详见WeSpeaker/runtime[1]。 Libtorch和onnx的选择? Speaker Embedding提取任务流程简单,并且声纹模型(如ResNet\E…

前端js学习

1. js入门 1.1 js是弱类型语言 1.2 js使用方式 1.2.1 在script中写 1.2.2 引入js文件 1.2.3 优先级 1.3 js查错方式 1.4 js变量定义 1.4 js数据类型 数据类型英文表示示例数值类型number1.1 1字符串类型string‘a’ ‘abc’ “abc”对象类型object布尔类型booleannumber函数…

包教包会的Node.js

一、简介 1、什么是Node.js 简单的说 Node.js 就是运行在服务端的 JavaScript。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。 2、Node.js有什么用 如果你是一个前…

风起|微软突发声明:始终严格保护并捍卫用户隐私

开放隐私计算 3 月 9 日消息,微软中国今天发布了声明,针对日前国内某些自媒体传播的有关个人用户使用微软消费类产品和服务的误解,特做了相关说明。微软表示,微软始终严格遵守个人隐私保护与数据安全等方面的各项法律法规。微软提…

深眸科技突破革新机器视觉技术,加速实现工业自动化与智能化发展

随着现代生活水平的不断提高,人们对产品的品质需求持续提升,且在智能制造这一大环境下,多数制造企业积极转型,寻求更高效的检测方式。而机器视觉及相关技术的发展,让多数公司通过创新机器视觉应用产品,以及…

面试必会-MySQL篇

1. Mysql查询语句的书写顺序Select [distinct ] <字段名称>from 表1 [ <join类型> join 表2 on <join条件> ]where <where条件>group by <字段>having <having条件>order by <排序字段>limit <起始偏移量,行数>2. Mysql查询语…

vue3使用nextTick

发现nextTick必须放在修改一个响应式数据之后&#xff0c;才会在onUpdated之后被调用&#xff0c;如果nextTick是放在所有对响应式数据修改之前&#xff0c;则nextTick里面的回调函数会在onBeforeUpdate方法执行前就被调用了。可是nextTick必须等到onUpdated执行完成之后执行&a…

Android代码重构系列-02-使用Kotlin协程实现一个支持任务编排的轻量级启动器

前言虽然本文的主题是启动器&#xff0c;但是笔者不打算去写怎么做启动优化&#xff0c;以及怎么实现一个完美的启动器。关于开源的第三方Android启动器已经有很多优秀的轮子了&#xff0c;比如阿里巴巴的alpha&#xff0c;参考 alpha 并改进其部分细节的Anchors&#xff0c;St…

Mybatis框架源码笔记(七)之Mybatis中类型转换模块(TypeHandler)解析

1、JDBC的基本操作回顾 这里使用伪代码概括一下流程: 对应数据库版本的驱动包自行下载加载驱动类 (Class.forName("com.mysql.cj.jdbc.Driver"))创建Connection连接: conn DriverManager.getConnection("jdbc:mysql://数据库IP:port/数据库名称?useUnico…

最新消息:2023年软考高项教材改版!

最新通知&#xff1a;从2023年上半年软考开始信息系统项目管理师考试将依据新版考试大纲进行。 给备考高项的朋友的一些建议&#xff1a; 备考资源&#xff1a; 【腾讯文档】软考各科资料分享 https://docs.qq.com/doc/DTVN1SWtFZHdicUNp 复习方法&#xff1a; 选择题 选择题…

ChatGPT,乌合之众的疯狂

最近ChatGPT有多火爆就不用我说了。公司里&#xff0c;从CEO到技术人员&#xff0c;乃至于门口的保安、食堂的大婶&#xff0c;没有一个不会聊两句ChatGPT的。连我20年未见的小学同学、三线城市警官&#xff0c;都问我这东西能不能给领导写汇报材料。 用不了多久&#xff0c;家…