赞
踩
目前项目是采用docker部署的, 由于需要新增一个微服务,最终是实现自动推送到远程的docker上,所以就顺便记录一下操作步骤
# 1、修改docker配置文件
vim /lib/systemd/system/docker.service在ExecStart=后面加上:
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock修改后的配置如下:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock# 2、刷新配置重启服务
systemctl daemon-reload
systemctl restart docker
# 开放防火墙2375端口, 2375端口是自己上面绑定的,可以根据自己需要进行调整
firewall-cmd --zone=public --add-port=2375/tcp --permanent
# 更新配置信息(这样就不需要重启防火墙了)
firewall-cmd --reload
# 查看服务器开放端口
netstat -tlun
添加maven-compiler-plugin插件如下
- <build>
- <!-- install后的jar包名称 -->
- <finalName>${project.artifactId}</finalName>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <version>1.2.2</version>
- <configuration>
- <!-- 镜像名称,相当于执行docker build -t 命令后面跟的镜像名称 -->
- <imageName>shr/${project.artifactId}</imageName>
-
- <!-- Dockerfile文件存放目录 -->
- <dockerDirectory>src/main/docker</dockerDirectory>
-
- <!-- docker远程服务器地址 -->
- <dockerHost>http://192.168.68.68:2375</dockerHost>
-
- <!--指定pem证书文件路径地址 -->
- <dockerCertPath>${project.basedir}docker-pem</dockerCertPath>
-
-
- <!-- 指定tag版本 -->
- <!--<imageTags>
- <imageTag>1.0</imageTag>
- </imageTags>-->
-
- <!-- build 时强制覆盖 tag,配合 imageTags 使用-->
- <!--<forceTags>true</forceTags>-->
-
- <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
- <resources>
- <resource>
- <targetPath>/</targetPath>
- <directory>${project.build.directory}</directory>
- <include>${project.build.finalName}.jar</include>
- </resource>
- </resources>
- </configuration>
- <executions>
- <!-- 执行mvn install时,执行 build、tag 操作-->
- <execution>
- <id>build-image</id>
- <phase>install</phase>
- <goals>
- <goal>build</goal>
- </goals>
- </execution>
-
- <!-- tag 用于给镜像打标签-->
- <!--<execution>
- <id>tag-image</id>
- <phase>package</phase>
- <goals>
- <goal>tag</goal>
- </goals>
- <configuration>
- <image>${project.artifactId}:latest</image>
- <newName>${project.artifactId}:${project.version}</newName>
- </configuration>
- </execution>-->
-
- <!-- maven执行deploy时push镜像 -->
- <!--<execution>
- <id>push-image</id>
- <phase>deploy</phase>
- <goals>
- <goal>push</goal>
- </goals>
- <configuration>
- <imageName>${project.artifactId}:${project.version}</imageName>
- </configuration>
- </execution>-->
- </executions>
- </plugin>
- </plugins>
- </build>

比较重要的参数含义如下
dockerHost: docker所在的服务器地址
dockerDirectory: dockerFile文件路径,也就是下面所要说的
dockerCertPath: 安全证书路径,这是为了安全的, 非必须,如果需要自行查找资料
文件如下,如有需要再自行进行修改
- FROM frolvlad/alpine-java:jdk8-slim
- MAINTAINER zxc
- ADD ./lib/local_policy.jar /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/local_policy.jar
- ADD ./lib/US_export_policy.jar /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/US_export_policy.jar
- ADD ./target/yourproject.jar /web.jar
- VOLUME /logs
- EXPOSE 8805/tcp
- ENTRYPOINT ["sh","-c","java -Dfile.encoding=UTF8 -Duser.timezone=GMT+8 -jar /web.jar"]
其中比较重要的参数含义如下
ADD ./target/yourproject.jar /web.jar: 就是把maven的项目添加到根目录,并改名为 web
VOLUME /logs : 日志文件挂载
EXPOSE 8805/tcp 暴露的端口, 对外访问的,一般跟项目端口一样即可
就是常规的maven install指令, mvn install, 然后去docker所在服务器执行如下指令
docker images 就能看到你的项目在上面了
如果你需要集成jenkins完成自动构建也是可以的,只不过这部分属于另外的知识了,有时间的话我也补充一下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。