zoukankan      html  css  js  c++  java
  • Maven+Docker 部署

    Maven+Docker 部署

    安装jdk8镜像

    docker pull openjdk:8-jdk-alpine

    maven插件推送方式

    1. 修改/etc/docker/daemon.json文件,加入hosts配置即可。 注意 使用本地docker构建,不要用的生产服务器上,这种方式容易被别人注入木马
      本地局域网 192.168.10.222
    {
    
      "hosts":["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]
    
    }
    
    1. 在settings.xml文件的同级目录创建settings-security.xml文件
      在cmd命令行中使用,在bash中特殊字符会出现转义问题
    mvn --encrypt-master-password <password>
    {4Cmy61mOMasHCreAdBngs40S7FJ8dFcD8MG9jCJKSNA=}
    
    <?xml version="1.0" encoding="UTF-8"?>
    <settingsSecurity>
      <master>{4Cmy61mOMasHCreAdBngs40S7FJ8dFcD8MG9jCJKSNA=}</master>
    </settingsSecurity>
    
    1. 编辑settings.xml
      最后使用你的私有仓库访问密码生成服务密码,将生成的密码写入到settings.xml的
    mvn --encrypt-password <password>
    {RCeI2AmEXXgHmFttKbzhhXBLq/vQdczAluUl3Vd7tsg=}
    
    <server>
    		<id>docker-aliyun</id>
    		<username>matosiki@163.com</username>
    		<password>{RCeI2AmEXXgHmFttKbzhhXBLq/vQdczAluUl3Vd7tsg=}</password>
    		<configuration>
    			<email>matosiki@163.com</email>
    		</configuration>
    	</server>
    
    
    
    
    2. 重新加载配置文件,并重启docker
    
    > systemctl daemon-reload
    
    > systemctl restart docker
    
    
    3. 验证,直接访问:
    
    > curl 127.0.0.1:2375/info
    
    
    ## java项目
    
    1. maven pom.xm 配置文件
    
    ​```xml
    <build>
    
            <plugins>
    
                <!-- springboot打包 -->
    
                <plugin>
    
                    <groupId>org.springframework.boot</groupId>
    
                    <artifactId>spring-boot-maven-plugin</artifactId>
    
                </plugin>
    
                 
    
                <plugin>
    
                    <groupId>com.spotify</groupId>
    
                    <artifactId>docker-maven-plugin</artifactId>
    
                    <version>0.4.9</version>
    
                    <configuration>
    
                       <!-- 镜像名称  -->
    
                       <imageName>matosiki/springboot-docker-demo</imageName>
    
                       <!-- docker远程服务器地址 -->
    
                       <dockerHost>http://服务器IP:2375</dockerHost>
    
                       <!-- Dockerfile文件存放目录 -->
    
                       <dockerDirectory>src/main/docker</dockerDirectory>
    
                       <resources>
    
                        <resource>
    
                            <directory>${project.build.directory}</directory>
    
                            <include>${project.build.finalName}.jar</include>
    
                        </resource>
    
                    </resources>
    
                    </configuration>
    
                </plugin>
    
            </plugins>
    
        </build>
    
    
    1. 编写Dockerfile 文件
    # Dockerfile
    
    # 基于的镜像
    
    FROM openjdk:8-jdk-alpine
    
    # 安装字体,Captcha需要字体支持
    RUN set -xe && apk --no-cache add ttf-dejavu fontconfig
    
    VOLUME /opt/tmp
    
     
    
    ADD projectname-1.0.0-SNAPSHOT.jar app.jar
    
     
    
    # -Djava.security.egd=file:/dev/./urandom 可解决tomcat可能启动慢的问题
    
    # 具体可查看:https://www.cnblogs.com/mightyvincent/p/7685310.html
    
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    
     
    
    # 对外端口
    
    EXPOSE 8080
    
    1. 编码运行

    mvn clean package docker:build -Dmaven.test.skip=true

    1. 查看镜像

    docker images

    1. 运行镜像,查看是否启动正常

    docker run -d -p 8080:8080 matosiki/springboot-docker-demo

    1. 基于已有镜像运行 jar
    docker run -d -p 1234:8080 -v /opt/docker/projectname-1.0.0-SNAPSHOT.jar:/usr/projectname-1.0.0-SNAPSHOT.jar --name SpringbootByJar openjdk:8-jdk-alpine java -jar /usr/projectname-1.0.0-SNAPSHOT.jar
    
  • 相关阅读:
    .Net5开发MQTT服务器
    使用Docker搭建MQTT服务器
    使用Docker搭建MQTT服务器
    在Raspberry Pi上安装Docker
    阿里云=>RHSA-2019:1884-中危: libssh2 安全更新
    MediaAPIController
    CentOS7 mysql支持中文
    设置centos7中的mysql5.7不区分表名大小写有关操作
    CentOS7 安装mysql(YUM源方式)
    centos7下安装nginx
  • 原文地址:https://www.cnblogs.com/fan-gx/p/11470687.html
Copyright © 2011-2022 走看看