maven依赖
<build>
<finalName>app</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- docker的maven插件, 官网: https://github.com/spotify/docker-maven-plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>192.168.232.134:5000/${project.artifactId}:${project.version}</imageName>
<baseImage>jdk8</baseImage>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<dockerHost>http://192.168.232.134:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
这里有个前提准备,在docker中要预先做好jdk的镜像以及jdk的容器,还有自己的docker私有仓库registry
服务器宿主机配置好jdk
使用脚本创建镜像
1、mkdir –p /usr/local/dockerjdk8
2、下载jdk-8u171-linux-x64.tar.gz并上传到服务器(虚拟机)中的/usr/local/dockerjdk8目录
3、创建文件Dockerfile【在jdk-8u171-linux-x64.tar.gz同级目录下】
vim Dockerfile
#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER PURE
#切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
保存配置文件
docker build ‐t='jdk1.8' .
注意后边的空格和点,不要省略
查看镜像是否建立完成
创建容器
docker run ‐it ‐‐name=myjdk8 jdk1.8
私有仓库搭建与配置
docker pull registry
docker run -di --name=registry -p 5000:5000 registry
修改daemon.json
vim /etc/docker/daemon.json
添加以下内容,保存退出
"insecure-registries":["192.168.232.134:5000"]
重启docker 服务
镜像上传至私有仓库
docker tag jdk1.8 192.168.184.135:5000/jdk1.8
再次启动私服容器
上传标记的镜像
docker push 192.168.184.135:5000/jdk1.8
Maven插件自动部署步骤:
1、修改宿主机的docker配置,让其可以远程访问
vim /lib/systemd/system/docker.service
ExecStart=后面添加-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
开放防火墙端口号:firewall-cmd --zone=public --add-port=2375/tcp --permanent
2、刷新配置,重启服务:
systemctl daemon-reload
systemctl restart docker
systemctl start registry
在idea中的操作
mvn clean package docker:build -DpushImage
之后等待就好,他会自动进行打包和上传镜像
注意: 这里可能会报错
Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default-cli) on project pure_config: Exception caught: Timeout: GET http://192.168.232
.134:2375/version: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: org.apache.http.conn.ConnectTimeoutException: Connect to 192.168.232.134:2375
[/192.168.232.134] failed: connect timed out -> [Help 1]
防火墙开启2375端口,修改宿主机的docker配置,让其可以远程访问
vim /lib/systemd/system/docker.service
1、进入宿主机 , 查看镜像
2、启动容器
docker run -di --name=pure_config -p 12000:12000 192.168.232.134:5000/pure_config:1.0-SNAPSHOT
端口号是你自己的项目端口号
查看是否启动
docker ps -a
这里还是很麻烦,怎么办,不用怕,jenkins持续集成
下一篇文章讲诉