El proyecto Maven integra Docker, impulsa el servidor privado y se ejecuta

En el proceso de desarrollo diario, el proyecto se empaquetará y se ejecutará en el servidor. En este artículo, se presenta el método de uso de la ventana acoplable para enviar el paquete jar local al servidor privado de la ventana acoplable y ejecutarlo en el servidor remoto.

paso

  1. Cree un nuevo proyecto maven, la estructura del directorio es la siguiente:
    Inserte la descripción de la imagen aquí
  2. Introduzca el complemento de compilación y empaquetado de maven y el complemento de empaquetado de docker en el archivo pom
    2.1.
    Inserte la descripción de la imagen aquí
    El profile.name debajo del perfil en el archivo pom de la configuración de múltiples entornos debe ser consistente con ** {env} ** en la aplicación- {env}
    2.2. Compilación de Maven Empaqueta el complemento
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${
    
    maven-compiler-plugin.version}</version>
    <configuration>
        <compilerArguments>
            <bootclasspath>${
    
    env.JAVA_HOME}\jre\lib\rt.jar;${
    
    env.JAVA_HOME}\jre\lib\jce.jar</bootclasspath>
        </compilerArguments>
        <source>${
    
    java.version}</source>
        <target>${
    
    java.version}</target>
        <encoding>${
    
    maven.compiler.encoding}</encoding>
        <verbose/>
    </configuration>
</plugin>
<plugin>
    <!--打包跳过测试-->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${
    
    maven-surefire-plugin.version}</version>
    <configuration>
        <skipTests>true</skipTests>
    </configuration>
</plugin>

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>${
    
    spring-boot.version}</version>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>${
    
    maven-resources-plugin.version}</version>
    <configuration>
        <nonFilteredFileExtensions>
            <nonFilteredFileExtension>woff</nonFilteredFileExtension>
            <nonFilteredFileExtension>eot</nonFilteredFileExtension>
            <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
            <nonFilteredFileExtension>svg</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
    </configuration>
</plugin>

2.3 configuración del complemento del paquete docker

<!-- docker打包插件 -->
<plugin>
     <groupId>io.fabric8</groupId>
     <artifactId>docker-maven-plugin</artifactId>
     <version>0.33.0</version>
     <configuration>
         <verbose>true</verbose>
         <!-- docker远程管理url -->
         <dockerHost>tcp://ip:2375</dockerHost>

         <registry>registry.cn-hangzhou.aliyuncs.com</registry>
			
         <authConfig>
         	<!-- docker私服账户密码 -->
             <push>
                 <username>zfl_aliases@163.com</username>
                 <password>123456</password>
             </push>
         </authConfig>

         <buildArgs>
             <JAR_FILE>${
    
    project.build.finalName}.jar</JAR_FILE>
         </buildArgs>
         <images>
             <image>
                 <!-- 镜像名称  命名空间/仓库名称:镜像版本号 -->
                 <name>${
    
    docker.image.prefix}/${
    
    project.artifactId}:${
    
    project.version}</name>
                 <build>
                     <dockerFile>${
    
    project.basedir}/src/main/docker/Dockerfile</dockerFile>
                     <assembly>
                         <name>/</name>
                         <!-- artifact是预定义的值,表示将项目打包后的jar拷贝到编译上下文中,便于Dockerfile ADD指令 -->
                         <descriptorRef>artifact</descriptorRef>
                     </assembly>
                 </build>
                 <run>
                     <!-- 运行时容器名称 -->
                     <containerNamePattern>${
    
    project.artifactId}</containerNamePattern>
                     <extraHosts>
                         <extraHost>服务器ip</extraHost>
                     </extraHosts>
                 </run>
             </image>
         </images>
     </configuration>
 </plugin>
  1. Escribir Dockerfile
// FROM 可根据实际情况来编写 openjdk:8
FROM registry.cn-hangzhou.aliyuncs.com/lee/jdk8-lee:1.0.0
MAINTAINER zhangfalu zfl_aliases@163.com 2021-01-25
ARG JAR_FILE
COPY ${
    
    JAR_FILE} app.jar
EXPOSE 8063
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Duser.timezone=GMT+08", "-jar", "/app.jar"]

  1. Comando de empaquetado : mvn clean package -Dmaven.skip.tests = true -P online
    Ver la información del archivo empaquetado en clases
    Inserte la descripción de la imagen aquí

  2. Prueba local
    Inserte la descripción de la imagen aquí

  3. Coloque el paquete jar local como un espejo y empújelo al servidor privado remoto, y ejecute el contenedor docker
    Command: mvn docker: stop docker: remove docker: build docker: push docker: start
    Inserte la descripción de la imagen aquí
    Inserte la descripción de la imagen aquí

  4. Ver servidor privado
    Inserte la descripción de la imagen aquí

  5. Ver el estado de ejecución del contenedor
    Inserte la descripción de la imagen aquí

Use idea para integrar Docker para administrar localmente la generación, eliminación, inicio y detención de contenedores, y evitar el uso de comandos. También puede ver mejor la información del registro de ejecución del contenedor.

  1. Haga clic en Archivo-Configuración
    Inserte la descripción de la imagen aquí
  2. Después de completar, haga clic en aplicar, habrá una ventana adicional de Docker debajo de la herramienta de desarrollo
    Inserte la descripción de la imagen aquí
  3. Haga clic en Abrir para conectarse para
    Inserte la descripción de la imagen aquí
    abrir los contenedores, ver el contenedor especificado, puede ver fácilmente el registro del contenedor
    Inserte la descripción de la imagen aquí

Nota: dirección del proyecto

Supongo que te gusta

Origin blog.csdn.net/qq_37640410/article/details/113124667
Recomendado
Clasificación