基于官方的docker镜像,制作自定义的私有镜像(以前端node为例)

一、背景

我们难免会有定制docker image的需求,本文就以前端项目依赖的Node环境为例,讲述如何把自定义的镜像由一个私库推送到另外一个私库的场景。

本文分为两部分,一是编写定制的Dockerfile文件;二是把harbor私库的镜像推送到nexus私库。

二、Dockerfile

在dockerhub搜索node,https://hub.docker.com/search?q=node
在这里插入图片描述
进入后,选择你在用的node版本。

FROM node:16.13.0ARG VUE_CLI_VERSION=3.3.0
ENV VUE_CLI_VERSION ${VUE_CLI_VERSION}ENV NPM_CONFIG_LOGLEVEL infoRUN apt-get -y update
RUN apt-get install -y zip unzip# 使用淘宝镜像,加速下面的安装lerna
RUN echo "\
registry=https://registry.npm.taobao.org/ \n\
proxy=null \n\
strict-ssl=false \n\
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ \
" > /root/.npmrcRUN npm install -g lernaWORKDIR /home/node/nemv

三、推送harbor私库的镜像到nexus私库

1、本地已有制作好的镜像

docker images | grep xxx
先找到要推送的镜像,然后打tag标签,最后push推送到nexus。

在这里插入图片描述
在这里插入图片描述

root@dev-vm-jvm-worker-01:~# docker images | grep composer
harbor.xx.cloud/library/xx-composer               2.0.14                    0690257d107b        2 years ago         169MBroot@dev-vm-jvm-worker-01:~# docker tag harbor.xx.cloud/library/xx-composer:2.0.14 192.168.5.6:8086/library/xx-composer:2.0.14root@dev-vm-jvm-worker-01:~# docker push 192.168.5.6:8086/library/xx-composer:2.0.14
The push refers to repository [192.168.5.6:8086/library/xx-composer]
776b99c66f0b: Pushed 
8b0cb31cc99e: Pushed 
4ec04a860bcf: Pushed 
440afdd54420: Pushed 
26beb482d6f3: Pushed 
3c2df1de189c: Pushed 
89d01b1c277b: Pushed 
110755da6eb9: Pushed 
02708184b93d: Pushed 
0a1e5e00585b: Pushed 
6cfea6e4001e: Pushed 
5b838bbb8048: Pushed 
493cc3941b45: Pushed 
5d718d40b44e: Pushed 
24e52497c24f: Pushed 
86d905c1f58e: Pushed 
22573737ba76: Pushed 
777b2c648970: Pushed 
2.0.14: digest: sha256:2e1a3138a004fe20939685b0b64fdce290e883bcc406ebd8523a747a45be83f7 size: 4080

2、本地没有已制作好的镜像

整个流程就多了第一步build环节,其他同上。

docker build -t library/xx-composer:2.0.14 .

四、总结

node版本如要升级,只需要修改Dockerfile中的版本号即可。
官方node镜像默认就支持yarn和npm,无需我们额外去安装。

当然,第一次由于是从dockerhub下载,网络差异,镜像的构建速度可能会比较慢。但是后面拉取私库的自定义镜像就比较快速了。

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

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

相关文章

Sharding sphere分库分表

需要物理自己实现分表分库,然后通过配置文件配置。 配置文件: 需要配置多个数据源,主从表的关系【默认主表修改,从表读取】,定义分库的策略【比如User id】和分表【表Id】的策略 分库和分表策略:分库策略…

【HTML】1px边框与1px分割线

对比图 箭头标注的是处理过的 1px分割线 使用transform的scaleY进行缩小 码 <div class"mini-heriz"></div><br><div style"border: solid 1px black; width: 300px;height: 1px;"></div> <style> .mini-heriz {wi…

计算机基础:一些你必须知道的名词详解,必须要会的理论知识

软件测试 计算机基本特点 计算机硬件组成 内存储器和外存储器特点 计算机软件系统组成 常见的操作系统软件 编码 计算机数据计量单位 浏览器 图片类型 网页打开过程 客户端、服务器、请求和响应 dos 命令 软件测试 在规定的条件下对程序进行操作&#xff0c;以发现…

清易FDS-150 土壤氮磷钾传感器 工作原理

产品概述 外型小巧轻便&#xff0c;便于携带和连接。 土壤氮磷钾测量传感器由电源模块、变送模块、漂零及温度补偿模块、数据处理模块等组成。传感器内置信号采样及放大、漂零及温度补偿功能&#xff0c;用户接口简洁、方便。 功能及特点 &#xff08;1&#xff09;本传感器…

算法通识|选择排序(简单选择排序、堆排序)

Before Writing 内容参考懒猫老师请多支持。 1 选择排序 1-1 简单排序的原理 简单选择排序的主要思想是&#xff1a;每趟排序在当前待排序序列中选出关键码最小的记录&#xff0c;添加到有序序列中。 1-2 堆选择排序的原理 堆排序主要思想是&#xff1a;每次构造一个堆&…

spring boot 学习

目录 引言&#xff1a; 一、Spring Boot概述 二、Spring Boot的核心特性 1 自动配置 2 起步依赖 3 内嵌容器 4 监控与管理 三、Spring Boot的入门步骤 1 环境安装 2 创建项建 3 编写代码 1 启动类 2 控制器 3服务 4自动装配 5配置属性 6 JPA实体 4 运行与调试…

HarmonyOS-页面跳转Router实例演示

本文将以APP的登录和修改昵称为例演示官网的几种页面跳转、返回以及这些流程携带参数&#xff0c;实例的形式记录学习HarmonyOS的页面跳转。 “页面路由指在应用程序中实现不同页面之间的跳转和数据传递。HarmonyOS提供了Router模块&#xff0c;通过不同的url地址&#xff0c;…

C语言例2-1:从键盘输入两个整数,计算其乘积

代码如下&#xff1a; //从键盘输入两个整数&#xff0c;计算其乘积 #include<stdio.h> int main(void) /*主函数*/ {int n1, n2, result; /*定义保存两个整数及其乘积的变量*/printf("please inp…

让手机变相机,微单变全画幅的外设-斯莫格摄影套装开箱

大家好&#xff0c;我是Circaboy&#xff0c;近期给我的手机和相机入了一整套专业的摄影外设套装&#xff0c;然后我发现专业设备加持下的摄影着实是比我之前的要好很多&#xff0c;所以我就写了个文章做个简单的介绍和专业外设加持下的摄影对比。 本次入手的是斯莫格摄影套装…

海南众乐科技--元宇宙场景星球乐园与上海普思签署战略投资协议

3月12日,上海普思投资有限公司与海南众乐科技有限公司正式签署了战略合作协议,上海普思投资有限公司首期投资180万元资金支持推动元宇宙场景项目星球乐园的开发。双方本着互利共赢的原则、达成长期、全面性的战略合作关系,推动数字场景业务共同发展。 星球乐园是海南众乐科技有…

AI新工具(20240313) 世界上第一个完全自主的AI软件工程师Devin 已经开始接外包了;又一个开源本地知识库问答系统

1: Cognition AI Devin 世界上第一个完全自主的AI软件工程师Devin 已经开始接外包了 Devin是世界上第一个完全自主的AI软件工程师&#xff0c;具备长期推理和规划的能力&#xff0c;能够执行复杂的工程任务&#xff0c;包括学习、修复错误、与用户实时合作等。Devin可以学习并…

Mysql 学习(十七)事务隔离级别和MVCC

前提准备 首先创建一个表&#xff1a; CREATE TABLE hero (number INT,name VARCHAR(100),country varchar(100),PRIMARY KEY (number) ) EngineInnoDB CHARSETutf8;INSERT INTO hero VALUES(1, 刘备, 蜀);事务隔离级别 mysql 是一个 客户端 和 服务器架构的软件&#xff0c…