pom文件加入docker-maven-plugin插件
<plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> <goal>push</goal> </goals> </execution> </executions> <configuration> <!-- Docker 推送镜像仓库地址 --> <pushRegistry>替换镜像仓库地主</pushRegistry> <!-- 认证信息 --> <authConfig> <push> <username>仓库账号</username> <password>仓库密码</password> </push> </authConfig> <images> <image> <name>镜像名:镜像版本</name> <alias>别名</alias> <build> <dockerFile>Dockerfile的路径</dockerFile> <buildOptions> <!-- 网络的配置,与宿主主机共端口号--> <network>host</network> </buildOptions> </build> <run> <namingStrategy>alias</namingStrategy> <ports> <port>0.0.0.0:8080:8080</port> </ports> </run> </image> </images> </configuration> </plugin>
以上注意的点主要是镜像仓库的地址和账号密码,确保能够连接的上镜像仓库。其实就是镜像的名称和版本,这可能和项目后续更新迭代有关,需要按照自己的规范,怎么方便怎么来。
编写DockerFile
# 指定基础镜像 FROM adoptopenjdk/openjdk11:x86_64-ubuntu-jre-11.0.20_8 # 配置环境变量 ENV WORK_HOME=/opt/ RUN mkdir /conf RUN mkdir /logs # 复制文件 COPY target/java.jar $WORK_HOME/ # 暴露端口 EXPOSE 9082 # 项目启动命令 ENTRYPOINT java -jar $WORK_HOME/java.jar --spring.config.location=/conf/application.yml 2>&1 >/logs/log.log
DockerFile要保证镜像文件中的配置文件路径不能错,要设置暴露的端口以及jar包要随着容器启动而启动。容器启动成功后,可以进入容器观看Springboot的日志。
服务器编写拉取镜像脚本
服务器建立.sh文件,复制下面脚本。每次更新,执行脚本即可。
docker stop 容器名
docker rm 容器名
docker pull 镜像名:版本
docker run -p 8082:8082 --name 容器名