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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM