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

云服务器系统环境: 华为云 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

基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第1张图片
锁住当前版本

apt-mark hold docker-ce

修改2375端口 防止被攻击

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

加上

-H tcp://0.0.0.0:4566

基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第2张图片
保存

systemctl daemon-reload
systemctl restart docker
systemctl status docker

基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第3张图片
测试

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

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

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

在这里插入图片描述

1.3 安装harbor

我也给你们下载好了
链接:https://pan.baidu.com/s/1HALIQ6Nn61FNVQ44pdpVAg
提取码:yxqa
也可以自己去github下载
手动传到服务器
基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第5张图片
解压

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

修改文件名为 harbor.yml

mv harbor.yml.tmpl harbor.yml

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

vi harbor.yml

修改
hostname: 你的云服务器公网IP地址
port: 端口 默认80
把https注释掉
harbor_admin_password: harbor登录密码
基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第7张图片
运行

bash install.sh

访问页面

http://139.9.xx.xx:85/
基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第8张图片
创建用户和创建项目 给项目分配用户
基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第9张图片

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

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

2.1 idea连接docker

File---->settings—>搜索docker 没有就去plugin下载
配置tcp地址:tcp://139.9.xx.xx:4566
基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第12张图片

2.2配置系统环境变量

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

基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第13张图片
注意: 重启电脑

2.3 配置maven的settings.xml文件

<server>
       <id>139.xxx:85id>
       <username>damowangusername>
       <password>xxxxxxxpassword>
       <configuration>
        <email>[email protected]email>
       configuration>
    server>

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

2.4修改pom.xml文件

注意 这个

   <build>
        <finalName>alicefinalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-deploy-pluginartifactId>
                <configuration>
                    <skip>trueskip>
                configuration>
            plugin>
            <plugin>
                <groupId>com.spotifygroupId>
                <artifactId>dockerfile-maven-pluginartifactId>
                <version>1.4.10version>
                <executions>
                    <execution>
                        <id>defaultid>
                        <goals>
                            <goal>buildgoal>
                            <goal>pushgoal>
                        goals>
                    execution>
                executions>
                <configuration>
                	
                    <dockerfile>E:\insuper\alice\Dockerfiledockerfile>
                    <useMavenSettingsForAuth>trueuseMavenSettingsForAuth>
                    
                    <repository>${project.artifactId}repository>
                    <tag>${project.version}tag>
                    
                    <buildArgs>
                        <JAR_FILE>target/alice.jarJAR_FILE>
                    buildArgs>
                configuration>
            plugin>
        plugins>
    build>

pom.xml配置的repository
基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第15张图片

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文件平级
基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第16张图片

2.6 idea执行mvn clean package

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

基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第17张图片
我们看一下云服务器有没有镜像了

docker images

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

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

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

File------>settings.xml-----搜docker
注意:
Address: 139.xx.xx.xx:85/jinan-lab 你harbor仓库登录地址:端口号/项目名
基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第19张图片
下面
Username: 该仓库下成员用户名
Password: 密码
Email: 邮箱
这仨要写就都写上 就是harbor创建的用户
基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第20张图片
server选docker
基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第21张图片

从idea连接的docker里面可以看到打的镜像
基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第22张图片

基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第23张图片
基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第24张图片
上传成功
![在这里插入图片描述](https://img-blog.csdnimg.cn/a355545d5f444cd88daff3756028ab03.png基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第25张图片

看一下harbor仓库
基于IDEA操作springboot项目构建docker镜像部署到云服务器并在idea把镜像推送到harbor仓库_第26张图片

你可能感兴趣的:(spring,boot,docker,服务器)