1.查看是否安装jdk,没有安装jdk1.8及以上版本
2.安装maven
https://www.cnblogs.com/cannel/p/11104190.html
https://www.cnblogs.com/cannel/p/11104190.html
3.安装git
4.拉取代码
https://www.jianshu.com/p/5636cd3d7714
https://www.jianshu.com/p/5636cd3d7714
5.安装docker
https://www.cnblogs.com/zsql/p/11078304.html
https://www.cnblogs.com/zsql/p/11078304.html
6.新建springboot项目
1)pom.xml设置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.ex.test</groupId>
<artifactId>spring-docker</artifactId>
<version>1.0</version>
<name>spring-docker</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<docker.image.prefix>spring-docker</docker.image.prefix>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
<!-- docker插件 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.10</version>
<configuration>
<repository>${project.artifactId}}</repository>
<contextDirectory>./</contextDirectory>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
</project>
2)Dockerfile设置,放在pom.xml同级
FROM java:8
EXPOSE 8888
ARG JAR_FILE
VOLUME /tmp
COPY ${JAR_FILE} /apps/app.jar
# 启动容器时执行
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/apps/app.jar"]
7.项目中运行:mvn clean package dockerfile:build
如果运行mvn clean package docker:build有可能出现如下错误
1、Maven不识别docker:build
你刚开始百度到的命令可能是:mvn clean package docker:build,然后运行,接着就失败了...
[ERROR] No plugin found for prefix 'docker' in the current project and in the plugin groups...
解决办法是修改 maven 的配置文件 settings.xml。( pluginGroups 在 settings.xml 中的位置很靠上)
<pluginGroups>
<pluginGroup>com.spotify</pluginGroup>
</pluginGroups>后来,你可能会发现,使用mvn clean package dockerfile:build,就不会有上边的错误。
2、Must specify baseImage if dockerDirectory
[ERROR] ... Exception caught: Must specify baseImage if dockerDirectory is null -> [Help 1]
应该使用mvn clean package dockerfile:build,而不是mvn clean package docker:build。
8.查看镜像:docker images
9.启动镜像:docker run -d -p 80:80 --name 容器名称 镜像名称:版本号
例: docker run -d -p 8587:8088 -e "SPRING_PROFILES_ACTIVE=dev" --name taiku taiku-java:1.0.0
如果日志时间不对,请执行 docker run -d --name "hone" -v /etc/localtime:/etc/localtime -p 8080:8080 hone
docker run -d --net="host" -e TZ="Asia/Shanghai" -p 8587:8088 -e "SPRING_PROFILES_ACTIVE=dev" --name taiku taiku-java:1.0.0
10.查看启动日志:docker logs
注:docker常用命令
# docker load -i ubuntu.tar 导入镜像
# docker run -it --name myimage imagename 创建容器(以imagename镜像为模板创建一个叫做myimage的容器)
# docker run -d -p 80:80 --name myimage imagename 创建容器并指定端口映射(前一个是外部端口,后一个是内部监听端口)
# docker run -it --name myimage imagename 创建交互式容器
# docker ps 查看容器状态
# docker ps -a 查看容器状态(包括不活跃的容器)
# docker attach myimage 连接容器
# docker top myimage 查看容器进程
# docker logs myimage 查看容器指令输出 -f 参数可以实时查看
# docker inspect myimage 查看容器详情
# docker stats myimage 查看容器资源使用率
# docker diff myimage 查看容器修改
# docker stop myimage 停止容器
# docker start myimage 启动容器
# docker kill myimage 强制干掉容器
# docker restart myimage 重启容器
# docker pause/unpause myimage 暂停/恢复容器
# docker rm vm1 删除容器
rm 删除容器
rmi 删除镜像