基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库

news2025/1/8 5:24:38

云服务器系统环境: 华为云 Ubuntu 9.3.0-17ubuntu1~20.04

1.ECS准备docker相关环境

1.1ECS安装docker

一行一行执行 都是从官网找的命令

sudo -i
apt update
apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

– 安装最新版

apt update
apt install docker-ce docker-ce-cli containerd.io
systemctl status docker

在这里插入图片描述
锁住当前版本

apt-mark hold docker-ce

修改2375端口 防止被攻击

 vim /usr/lib/systemd/system/docker.service

加上

-H tcp://0.0.0.0:4566

在这里插入图片描述
保存

systemctl daemon-reload
systemctl restart docker
systemctl status docker

在这里插入图片描述
测试

curl http://localhost:4566/version

在这里插入图片描述
在这里插入图片描述
修改docker镜像源

vi /etc/docker/daemon.json

复制上

{
  "registry-mirrors": ["http://hub-mirror.c.163.com","https://registry.docker-cn.com"]
}

配置完毕重启下docker服务

systemctl daemon-reload 
systemctl restart docker

1.2安装docker-compose

docker-compose有V1和V2版本,我用的是V2
有两种
第一种是链接下载

curl -L "https://github.com/docker/compose/releases/download/v2.10.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

授权

 chmod +x /usr/local/bin/docker-compose

第二种从github下载文件 手动传到服务器
链接:https://pan.baidu.com/s/1yhw1-VVvhIn6kyx4j-lzVQ
提取码:hb3n
手动传到目录
/usr/local/bin

mv  docker-compose-linux-x86_64 docker-compose

在这里插入图片描述

chmod +x /usr/local/bin/docker-compose
docker compose version

在这里插入图片描述

1.3 安装harbor

我也给你们下载好了
链接:https://pan.baidu.com/s/1HALIQ6Nn61FNVQ44pdpVAg
提取码:yxqa
也可以自己去github下载
手动传到服务器
在这里插入图片描述
解压

tar -xvf harbor-offline-installer-v2.8.2.tgz

修改文件名为 harbor.yml

mv harbor.yml.tmpl harbor.yml

在这里插入图片描述

vi harbor.yml

修改
hostname: 你的云服务器公网IP地址
port: 端口 默认80
把https注释掉
harbor_admin_password: harbor登录密码
在这里插入图片描述
运行

bash install.sh

访问页面

http://139.9.xx.xx:85/
在这里插入图片描述
创建用户和创建项目 给项目分配用户
在这里插入图片描述

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

2.准备springboot项目 构建镜像发布

2.1 idea连接docker

File---->settings—>搜索docker 没有就去plugin下载
配置tcp地址:tcp://139.9.xx.xx:4566
在这里插入图片描述

2.2配置系统环境变量

变量名:DOCKER_HOST
变量值:tcp://139.9.xx.xx:4566

在这里插入图片描述
注意: 重启电脑

2.3 配置maven的settings.xml文件

<server>
       <id>139.xxx:85</id>
       <username>damowang</username>
       <password>xxxxxxx</password>
       <configuration>
        <email>m1836xxxx102@163.com</email>
       </configuration>
    </server>

在这里插入图片描述

2.4修改pom.xml文件

注意 这个

   <build>
        <finalName>alice</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.10</version>
                <executions>
                    <execution>
                        <id>default</id>
                        <goals>
                            <goal>build</goal>
                            <goal>push</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                	<!-- 不写这个 生成出来的镜像没有镜像ID-->
                    <dockerfile>E:\insuper\alice\Dockerfile</dockerfile>
                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
                    <!-- 生成镜像的repository 看下图-->
                    <repository>${project.artifactId}</repository>
                    <tag>${project.version}</tag>
                    <!--Dockerfile中引用到的参数-->
                    <buildArgs>
                        <JAR_FILE>target/alice.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>

pom.xml配置的repository
在这里插入图片描述

2.5编写Dockerfile文件

FROM openjdk:8-alpine
WORKDIR /usr/local
EXPOSE 13500
ADD  ./target/alice.jar .
ENTRYPOINT   ["java","-jar","alice.jar"]

这个文件你乱写的话 容易报这个错DockerException: ADD failed: xxxxxxxxx,no such file or directory
这个文件要放在和pom.xml文件平级
在这里插入图片描述

2.6 idea执行mvn clean package

![(https://img-blog.csdnimg.cn/3768da31360e490f839b01edd219fcf7.png)

在这里插入图片描述
我们看一下云服务器有没有镜像了

docker images

在这里插入图片描述

可以看到之前是没有的镜像的 , mvn clean package执行完之后构建成功

2.7 idea配置harbor仓库地址把镜像推送到harbor

File------>settings.xml-----搜docker
注意:
Address: 139.xx.xx.xx:85/jinan-lab 你harbor仓库登录地址:端口号/项目名
在这里插入图片描述
下面
Username: 该仓库下成员用户名
Password: 密码
Email: 邮箱
这仨要写就都写上 就是harbor创建的用户
在这里插入图片描述
server选docker
在这里插入图片描述

从idea连接的docker里面可以看到打的镜像
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
上传成功
![在这里插入图片描述](https://img-blog.csdnimg.cn/a355545d5f444cd88daff3756028ab03.png在这里插入图片描述

看一下harbor仓库
在这里插入图片描述

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

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

相关文章

Linux学习之screen和系统日志

screen yum install -y screen安装screen。 输入screen就可以进入screen环境。 在screen环境中执行tail -f /var/log/messages。 可以先按Ctrla&#xff0c;这时没有反应&#xff0c;需要紧接着迅速按d才能退出screen环境。 使用screen -r 11326还可以进入到刚刚挂起的s…

【Rust】基本语法

文章目录 变量与可变性变量与常量Shadowing&#xff08;隐藏&#xff09;数据类型标量类型1.整数类型2.浮点类型3.布尔类型4.字符类型 复合类型1.Tuple2.数组 函数if表达式循环1.loop2.while3.for 变量与可变性 声明变量使用let关键字&#xff0c;默认情况下&#xff0c;变量是…

Android 开发环境搭建

系列文章 MySQL安装教程&#xff08;详细&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/126037520 MySQL卸载教程&#xff08;详细&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/129279265 …

【C++】类型转换和IO流

C完结 文章目录 前言一、C的四种类型转换二、IO流总结 前言 首先我们看看C语言中的类型转换&#xff1a; 在 C 语言中&#xff0c;如果 赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或者返回值类型与 接收返回值类型不一致时&#xff0c;就需…

tmux-解决ssh长时间不操作便会话结束的问题

Tmux 是一个终端复用器&#xff08;terminal multiplexer&#xff09;&#xff0c;非常有用&#xff0c;属于常用的开发工具。 如果电脑死机会话中断的话会导致服务器上基于bash的所有进程都被强制关闭。tmux确实是解决这个问题的好办法&#xff0c;而且很容易上手&#xff0c…

帝国CMS自动刷新首页和自定义列表页:实现网站内容的自动更新

本文将介绍一种实现帝国CMS自动刷新首页和自定义列表页的方法。 以下是具体的实现步骤&#xff1a; 1、设置自定义key 添加网站 设置发布网站 发布成功 首先&#xff0c;在您的帝国CMS根目录下创建一个名为"htmlindex"的文件夹&#xff08;您可以自行命名&#xff…

基于网格式搜索SVM方法的电力负荷预测

来源公众号:320科技工作室 随着生活质量的提高&#xff0c;人们对电的需求不断上升&#xff0c;电力系统的发展变得尤为重要。准确的电力负荷预测能够使电力部门降低发电成本&#xff0c;合理安排设备维护以及节省能源&#xff0c;并为电力规划以及制定合理发电量提供相关依据…

PACS医学影像系统(完整版)

一、PACS影像存取与传输系统以实现医学影像数字化存储、诊断为核心任务&#xff0c;从医学影像设备&#xff08;如CT、CR、DR、MR、DSA、RF等&#xff09;获取影像&#xff0c;集中存储、综合管理医学影像及病人相关信息&#xff0c;建立数字化工作流程。 二、系统可实现检查预…

【Echarts系列】— echarts饼图、圆环图配置代码图文详解

前言 简介&#xff1a;本文将从头开始&#xff0c;带你快速上手 echarts最常用图例—饼图 准备&#xff1a;请自行先将echarts图例引入你的项目&#xff0c;本文不多介绍。&#xff08;引入 echarts教程&#xff1a;http://t.csdn.cn/mkTa4&#xff09; 心得&#xff1a;echar…

LangChain 基于 ChatGPT 整合 Google 搜索 强化问答应用

一、LangChain Agents LangChain 中的 Agents 是什么呢&#xff0c;对于官方的描述是&#xff1a;某些应用程序不仅需要预先确定的对 LLM/其他工具的调用链&#xff0c;还可能需要依赖于用户输入的未知链。在这些类型的链中&#xff0c;有一个 Agents 可以访问一套工具。根据用…

【ISO26262】汽车功能安全第4部分:系统层面

第4部分:产品开发:系统层面 GB/T34590的本部分规定了车辆在系统层面产品开发的要求,包括: ———启动系统层面产品开发; ———技术安全要求的定义; ———技术安全概念; ———系统设计; ———相关项集成和测试; ———安全确认; ———功能安全评估;及 ———生产发布。

程序运行期间加载动态库

note 相关系统调用接口&#xff1a;dlopen\dlclose\dlerror\dlsym code math.c int add(int x, int y) {return (xy); }int sub(int x, int y) {return (x-y); } main.c #include <stdio.h> #include <stdlib.h> #include <dlfcn.h>int main(int argc, …

VMware网络模式大揭秘:打造高效稳定的虚拟机通讯网络

文章目录 一 VMWare网络连接1.1 查看VM网络模式1.2 VMWare三种网络模式1.2.1 桥接模式&#xff08;Bridged Mode&#xff09;1.2.2 主机模式&#xff08;Host-Only Mode&#xff09;1.2.3 NAT模式&#xff08;Network Address Translation Mode&#xff09; 1.3 补充知识&#…

linux基础命令总结

目录标题 目录操作1.绝对路径和相对路径2.目录的基本操作3.chomd、chown、chgrp4.cd命令 文件操作1.touch2.more4.cat5.grep6.rm7.cp8.mv9.find 磁盘操作1.df2.du date、passwd1.date2.passwd su、clear、man、who1.su2.man3.clear4.who unameuptimefreepsps与grep、kill1.与gr…

【Leetcode】动态规划 刷题训练(八)

文章目录 413. 等差数列划分状态转移方程完整代码 978. 最长湍流子数组题目解析状态转移方程f[i]状态转移方程g[i]状态转移方程 完整代码 139. 单词拆分状态转移方程初始化完整代码 413. 等差数列划分 点击查看&#xff1a;等差数列划分 如果一个数列 至少有三个元素 &#x…

【操作系统】键盘敲入字母时,操作系统期间发生了什么?

【操作系统】键盘敲入字母时&#xff0c;操作系统期间发生了什么&#xff1f; 参考资料&#xff1a; 键盘敲入 A 字母时&#xff0c;操作系统期间发生了什么&#xff1f; 【操作系统】浅谈 Linux 中的中断机制 文章目录 【操作系统】键盘敲入字母时&#xff0c;操作系统期间发…

小驰私房菜_26_YUV数据存在数据对齐,工具打开花图时如何处理?

【问题背景】 在Qcom Camx框架下&#xff0c;dump的yuv,yuv数据有时会存在数据对齐&#xff0c;也就是app端下发的size和我们dump出来的size是不一致的。 这个时候&#xff0c;我们用yuv工具查看yuv数据的时候&#xff0c;宽高如果直接设置的app端下发的size&#xff0c;这个时…

案例解析 | 虚拟数智人“岭梅香”——民间博物馆文化探寻者

TA 是湾区民间文化探寻者 还是广东民间博物馆宣传大使 万里归来颜愈少 笑时犹带“岭梅香” 虚拟数智人 是文博行业走进“元宇宙”的“探路者” 为了践行国家文化数字化战略&#xff0c;按照文化和旅游部“上云用数赋智”的要求&#xff0c;南方都市报、N视频联合广州虚拟…

MATLAB Onramp

目录 任务 音频频率 以表的形式导入数据 循环 恒星运动 知识点摘要 任务 您可以按键盘上的向上箭头键重新调用以前的命令。请注意&#xff0c;要执行此操作&#xff0c;命令行窗口必须为活动窗口。 按向上箭头键以回到命令 m3*5&#xff0c;然后将该命令编辑为 m3*k cle…

【209. 长度最小的子数组】

目录 一、题目解析二、算法原理三、代码实现 一、题目解析 二、算法原理 注意点&#xff1a; 三、代码实现 我自己写的代码(我的评价是很挫) class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int left 0, right -1, ret INT_MAX…