node镜像制作使用

news/2024/9/21 22:24:15
  1. jenkins打包,直接使用nginx镜像/node镜像
    1.1 pipline
    pipeline {
    agent any
    options {timestamps()
    }
    environment {CRET_ID = '7a52'IMAGE_NAME = "harbor.xxx.xxx/xxx-pip/{JOB_NAME}-{PROJECT_ENV}"NAMESPACES = 'java-{PROJECT_ENV}'
    }
    stages {stage('清除工作空间') {steps {cleanWs()}}stage('Node build') {steps {script {sh "npm install  --registry=https://registry.npmmirror.com/ --unsafe-perm "sh "npm run build"}}}stage('gitlab pull') {steps {sh "echo{IMAGE_NAME}"echo '正在拉取代码...'checkout([class: 'GitSCM',                branches: [[name: Git_Tag]],                doGenerateSubmoduleConfigurations: false,                extensions: [],                submoduleCfg: [],                userRemoteConfigs: [[credentialsId: '7a52b90e', url: Git_URL]]])}}stage('docker build') {steps {script {if ( PROJECT_ENV == 'prod' ) {IMAGE_NAME = "registry.cn.aliyuncs.com/xxx-pip/{JOB_NAME}-{PROJECT_ENV}"}sh "docker rmi{IMAGE_NAME}:`expr {BUILD_ID} - 2` || true"sh "docker build -t{IMAGE_NAME}:{BUILD_ID} ."sh "docker tag{IMAGE_NAME}:{BUILD_ID}{IMAGE_NAME}:latest"}}}stage('docker push') {steps {script {if ( PROJECT_ENV == 'prod' ) {IMAGE_NAME = "registry.cn.aliyuncs.com/xxx-pip/{JOB_NAME}-{PROJECT_ENV}"}sh "docker push {IMAGE_NAME}:{BUILD_ID} && docker push {IMAGE_NAME}:latest"}}}stage('kube apply') {steps {script{if ( PROJECT_ENV == 'test' ) {sh "kubectl set image deploy{JOB_NAME} -n {NAMESPACES}{JOB_NAME}={IMAGE_NAME}:{BUILD_ID} --record"sh "kubedog rollout track -n {NAMESPACES} deployment{JOB_NAME}"}else{IMAGE_NAME = "registry-vpc.cn.aliyuncs.com/xxx-pip/{JOB_NAME}-{PROJECT_ENV}"sh "kubectl --kubeconfig /root/.kube/config.xxx set image deploy {JOB_NAME} -n{NAMESPACES} {JOB_NAME}={IMAGE_NAME}:{BUILD_ID} --record"sh "kubedog --kube-config  /root/.kube/config.xxx rollout track -n{NAMESPACES} deployment ${JOB_NAME}"}                     }}}
    }
    }

    1.2 Dockerfile(使用Nginx)

    FROM nginx
    LABEL maintainer="研发组 <user@xxx.xxx>"
    COPY ./dist/  /usr/share/nginx/html/
    RUN chmod -R 777 /usr/share/nginx/html/
    RUN chmod -R 777 /etc/nginx/conf.d/default.conf
    CMD ["nginx", "-g", "daemon off;"]

    1.3 Dockerfile (使用node镜像)

    FROM node:8.10.0-alpine 
    ENV TZ=Asia/Shanghai 
    RUN ln -snf /usr/share/zoneinfo/TZ /etc/localtime && echoTZ > /etc/timezone
    WORKDIR /app
    ADD . /app/
    RUN npm i docsify-cli -g --registry=https://registry.npmmirror.com
    RUN docsify init ./
    CMD ["docsify","serve","./"]
  2. 使用node镜像+Nginx镜像

    2.1 pipline

    pipeline {
    agent any
    options {timestamps()
    }
    environment {CRET_ID = '7a52'IMAGE_NAME = "harbor.xxx.xxx/xxx-pip/{JOB_NAME}-{PROJECT_ENV}"NAMESPACES = 'java-{PROJECT_ENV}'
    }
    stages {stage('清除工作空间') {steps {cleanWs()}}stage('gitlab pull') {steps {sh "echo{IMAGE_NAME}"echo '正在拉取代码...'checkout([class: 'GitSCM',                branches: [[name: Git_Tag]],                doGenerateSubmoduleConfigurations: false,                extensions: [],                submoduleCfg: [],                userRemoteConfigs: [[credentialsId: '7a52b90e', url: Git_URL]]])}}stage('docker build') {steps {script {if ( PROJECT_ENV == 'prod' ) {IMAGE_NAME = "registry.cn.aliyuncs.com/xxx-pip/{JOB_NAME}-{PROJECT_ENV}"}sh "docker rmi{IMAGE_NAME}:`expr {BUILD_ID} - 2` || true"sh "docker build -t{IMAGE_NAME}:{BUILD_ID} ."sh "docker tag{IMAGE_NAME}:{BUILD_ID}{IMAGE_NAME}:latest"}}}stage('docker push') {steps {script {if ( PROJECT_ENV == 'prod' ) {IMAGE_NAME = "registry.cn.aliyuncs.com/xxx-pip/{JOB_NAME}-{PROJECT_ENV}"}sh "docker push {IMAGE_NAME}:{BUILD_ID} && docker push {IMAGE_NAME}:latest"}}}stage('kube apply') {steps {script{if ( PROJECT_ENV == 'test' ) {sh "kubectl set image deploy{JOB_NAME} -n {NAMESPACES}{JOB_NAME}={IMAGE_NAME}:{BUILD_ID} --record"sh "kubedog rollout track -n {NAMESPACES} deployment{JOB_NAME}"}else{IMAGE_NAME = "registry-vpc.cn.aliyuncs.com/xxx-pip/{JOB_NAME}-{PROJECT_ENV}"sh "kubectl --kubeconfig /root/.kube/config.xxx set image deploy {JOB_NAME} -n{NAMESPACES} {JOB_NAME}={IMAGE_NAME}:{BUILD_ID} --record"sh "kubedog --kube-config  /root/.kube/config.xxx rollout track -n{NAMESPACES} deployment ${JOB_NAME}"}                     }}}
    }
    }

    2.2 Dockerfile

    FROM node:18.20.2 as build
    COPY . /app
    WORKDIR /app
    ARG PUBLIC_PATH=/
    ARG MODE
    RUN npm -v
    RUN npm install  --registry=https://registry.npmmirror.com/ --unsafe-perm  && npm run build
    FROM nginx:alpine
    ARG PUBLIC_PATH=/
    COPY --from=build /app/build/ /usr/share/nginx/html${PUBLIC_PATH}
    EXPOSE 80

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

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

相关文章

尝试RVC音色克隆团长音色

前言 昨晚玩剑网3突发奇想,把团长声音克隆下来,利用语音喵制作成语音DBM。 这样不管团长开不开团,打团也能有团长声音听了诶嘿嘿。 于是当场关闭游戏声音录了打本的素材,本文就边做边记录。 下载 在B站找到了这个教程: 【你的声音,现在是我的了!】https://www.bilibili.…

隐私保护体系下网络威胁情报共享的研究现状和方案设计

来源:http://netinfo-security.org/article/2024/1671-1122/1671-1122-24-7-1129.shtml威胁情报 网络威胁情报是关于网络中正在进行的或潜在的恶意活动信息,涵盖但不限于特定的恶意软件样本、恶意IP地址、钓鱼电子邮件信息、黑客组织的入侵行为等内容,对于提前感知预警、防范…

Logisim-013-◇汉字显示

转码在线工具地址 https://www.23bei.com/tool/54.html#仓库地址 https://gitee.com/gitliang/logisim-to-cpu

spring6.1在java17环境下使用反射

引包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId><version>3.3.4</version> </dependency> 反射代码编写简单的反射方法,如下所示 package com.lw.reflect.c…

实景三维+耕地保护:构建耕地资源管理的全闭环新模式

在耕地资源日益珍贵的今天,如何高效、精准地实施耕地保护,成为了我国农业可持续发展与生态文明建设的关键课题。“实景三维+耕地保护”的创新模式,能够为这一挑战提供突破性的解决方案,打造一个从前端监测到后端管理的全闭环耕地保护管理模式。本文将深入分析这一模式的核心…

IDEA 如何设置TAB页显示多行

前言 我们在使用IDEA开发时,经常需要打开多个TAB页,但是,IDEA默认的方式是最多只能打开少量的TAB页,且打开的TAB页只能堆积在一行上显示,如果超出了数量,就会自动隐藏。这样对于我能经常需要在多个不同TAB页之间打开来说,是比较麻烦的,那么有什么办法能改变下设置呢? …

在Linux下安装MySQL

摘要 在学习MySQL语法之前,我们需要先解决在Ubuntu或CentOs环境下的“软件安装”的问题。本文梳理了安装前后的各个步骤及有关的注意事项,主要涵盖了安装前的准备工作、如何安装mysql,以及安装之后如何启动、如何正式使用这几个方面。建议读者先浏览一遍,留心相关的注意事项…

深入剖析RocketMQ消息消费原理

本文参考转载至《RocketMQ技术内幕 第2版》一. 消息消费概述 消息消费以组的模式开展,一个消费组可以包含多个消费者,每个消费组可以订阅多个主题,消费组之间有集群模式和广播模式两种消费模式。集群模式是当前主题下的同一条消息只允许被其中一个消费者消费。广播模式是当前…