微服务自动化【idea插件一键部署】

目录​​​​​​​

1. Docker结合Idea插件使用 

2. 私服搭建 registry

3. 私有仓库的使用

4. idea一键项目部署单独Docker镜像

5. idea一键项目部署Docker标记镜像【私库】


1. Docker结合Idea插件使用 

1. 修改Docker服务文件,注释掉"ExecStart"这一行,并添加下面信息 

vim /lib/systemd/system/docker.service
  • 代码如下
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

2. 重新加载配置文件

systemctl daemon-reload

3. 重启服务

systemctl restart docker

4. 防火墙操作

firewall-cmd --zone=public --add-port=2375/tcp --permanent && firewall-cmd --reload && firewall-cmd --list-ports

5. 配置IDEA

 

6. 查看docker

 

7. 构建Springboot项目,生成Dockerfile,并完成镜像生成

#1.指定基础镜像
FROM openjdk:8-jdk-alpine
#2.维护者信息
MAINTAINER xyz "[email protected]"
#3.创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录
VOLUME /tmp
#4.复制test1.jar到容器里(此处与之后的idea中使用docker插件一键发布是不一样的)
ADD test.jar /test.jar
#5.设置时区
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#6.声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8080
#7.指定容器启动程序及参数(相当于在容器中用cmd命令执行jar包)
ENTRYPOINT ["java","-jar","/test.jar"]
#下面的写法指定springboot项目启动时指定的额外参数
#ENTRYPOINT ["java","-jar","/test.jar","--spring.config.location=/usr/local/project/docker/xxl-job/config/application.yml"]

8. 打包镜像

docker build -t test:1.0 .

9. 基于打包的镜像开启一个容器

docker run -itd --name test01 -p 8848:8080 test:1.0

2. 私服搭建 registry

1. 拉取Registry镜像(这里选择搭建2.7版本的registry,不使用最新版,有BUG)

docker pull registry:2.7

2. 开启容器

docker run -d \
--name myregistry \
-p 5000:5000 \
-v /usr/local/docker/registry:/var/lib/registry \
--restart=always \
registry:2.7

3. 验证是否搭建成功

curl http://127.0.0.1:5000/v2/_catalog


curl http://192.168.27.120:5000/v2/_catalog

4. 让docker信任私有镜像仓库地址

vi /etc/docker/daemon.json
  •  在daemon.json中添加以下内容,其值为注册服务器(registry)的IP及端口
"insecure-registries":["192.168.27.120:5000"]

5. 重启docker

systemctl restart docker

3. 私有仓库的使用

创建好私有仓库之后,就可以使用 docker tag 来标记一个镜像,然后推送它到仓库

  • 先在本机查看已有的镜像,选择其中一个进行上传
  • 镜像标记(push前必须先标记镜像,自定义repository不能有大写字母) 
docker tag 自定义镜像名[:版本] 私服IP:端口/仓库名[:版本]

docker tag test:1.0 192.168.27.120:5000/test:v1.0

1. 执行查看所有镜像

docker images

2. 镜像上传

docker push 192.168.27.120:5000/test:v1.0

3. 查看注册服务器的所有镜像

curl 127.0.0.1:5000/v2/_catalog

4. 从registry下载镜像

docker pull 192.168.27.120:5000/test:v1.0

4. idea一键项目部署单独Docker镜像

1. 添加pom插件

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!--docker-maven-plugin插件打包-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <!--镜像名称-->
                    <imageName>${project.artifactId}</imageName>
                    <!--指定标签-->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>
                    <!--基础镜像jdk1.8-->
                    <baseImage>java</baseImage>
                    <!--制作者提供本人信息-->
                    <maintainer>[email protected]</maintainer>
                    <!--切换到Root目录-->
                    <workdir>/ROOT</workdir>
                    <cmd>["java", "-version"]</cmd>
                    <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>

                    <!--指定DockerFile路径-->
                    <!--                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>-->

                    <!--指定远程docker api地址-->
                    <dockerHost>http://192.168.119.129:2375</dockerHost>

                    <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
                    <resources>
                        <resource>
                            <targetPath>/ROOT</targetPath>
                            <!--用于指定需要复制的根目录-->
                            <directory>${project.build.directory}</directory>
                            <!--用于指定需要复制的jar文件-->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

2. 项目进行clear and install

3. 进入我们项目的根目录进行cmd操作

mvn docker:build

4. 可以看到已经完成部署

5. idea一键项目部署Docker标记镜像【私库】

1. 配置系统环境(变量与idea连接dokcer ip一致即可)

2. 需在maven/conf/下的setting.xml配置

<pluginGroups>
  <pluginGroup>com.spotify</pluginGroup>
</pluginGroups>

3. 添加Dockerfile文件 与pom.xml配置文件同级

FROM openjdk:8-jdk-alpine
MAINTAINER xyz "[email protected]"
VOLUME /tmp

#/target/...这是你自己将项目打包后的jar包名称  /test.jar
ADD /target/test-0.0.1-SNAPSHOT-exec.jar /test.jar
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
EXPOSE 8080
ENTRYPOINT ["java","-jar","/test.jar"]

4.添加pom插件

      <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <classifier>exec</classifier>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
            <!--docker插件使用-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.10</version>
                <executions>
                    <execution>
                        <id>default</id>
                        <!--<goals>
                            &lt;!&ndash;如果package时不想用docker打包,就注释掉这个goal&ndash;&gt;
                            <goal>build</goal>
                            <goal>push</goal>
                        </goals>-->
                    </execution>
                </executions>
                <configuration>
                    <repository>192.168.119.128:5000/test1000</repository>
                    <tag>${project.version}</tag>
                    <buildArgs>
                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>

5. 将项目打包

6. 添加maven 插件 (​​​​​​​clean package dockerfile:build -Dmaven.test.skip=true)

clean package dockerfile:build -Dmaven.test.skip=tru

7. maven插件添加后需要先将pom依赖注释掉的解释(将图中的注释掉的插件解开即可)

8. 点击maven插件运行打包docker镜像

  •  查看镜像 !ok已经打包完成

9. 问题清单!!!重点

  1. 查看是否已经配置好系统变量(建议配置好环境后电脑重启一下)
  2. 查看在maven/conf/下的setting.xml配置
<pluginGroups>
  <pluginGroup>com.spotify</pluginGroup>
</pluginGroups>

猜你喜欢

转载自blog.csdn.net/m0_63300795/article/details/128196021
今日推荐