Gradle Docker 打包

1.父级build.gradle

buildscript {
ext {
springBootVersion = ‘2.2.1.RELEASE’
}
repositories {
maven {
url = “http://192.168.6.135:8081/nexus/content/groups/public/“
}
}

  1. dependencies {<br /> classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"<br /> classpath('com.bmuschko:gradle-docker-plugin:6.1.1')<br /> }<br />}

2.需要打包的子build.gradle

apply plugin: "com.bmuschko.docker-spring-boot-application"    dependencies {<br />    }<br />    docker {<br />        //如果url不指定的话<br />        // Unix系统默认:unix:///var/run/docker.sock<br />        //Windows系统默认:tcp://127.0.0.1:2375。<br />        url = 'http://10.3.192.39:2375'<br />        registryCredentials {<br />            url = 'http://10.3.192.39:8777'<br />            username = 'admin'<br />            password = 'Harbor12345'<br />        }<br />        springBootApplication {<br />            baseImage = '10.3.192.39:8777/hualongxin/jdk1.8:latest'//指定运行镜像<br />            ports = [8086]  //暴露的端口<br />            images = ["10.3.192.39:8777/hualongxin/${project.group}/${project.name}:${version}"]<br />            jvmArgs = ['-Dspring.profiles.active=$env', '-Xmx2048m', '-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8084']<br />        }<br />    }

3.构建镜像

运行task dockerPushImage

4. k8s指定spring profiles

deployment.yaml
kind: DeploymentapiVersion: apps/v1
metadata:
name: my-spring-boot-app
spec:
replicas: 3
selector:
matchLabels:
app: my-spring-boot-app
template:
metadata:
labels:
app: my-spring-boot-app
spec:
containers:
- name: my-spring-boot-app
image: my-spring-boot-app:1.2.3
env:
- name: SPRING_PROFILES_ACTIVE
value: prod

Spring Boot Jar 容器化的Dockerfile编写

1、在linux服务器上安装docker
这里参考https://www.cnblogs.com/hanfengyeqiao/p/13694680.html 即可。
2、下载jdk8依赖,这里可以下载docker官方提供的
docker pull docker.io/java:8
3、安装好后,将jar包上传到服务器,并进入到jar包所在的目录。
例如:cd /usr/local/probject
4、编写Dockerfile文件
先创建一个文件名为 Dockerfile 的文件。注意不要后缀。然后上传到jar包所在的目录。
Dockerfile文件的内容:

基于java镜像创建新镜像
FROM docker.io/java:8
# 将jar包添加到容器中并更名为kxrw.jar
COPY kxrw.jar /usr/local/probject/kxrw.jar
# 暴露8080端口
EXPOSE 8080
# 运行jar包
ENTRYPOINT [“nohup”,”java”,”-jar”,”/usr/local/probject/kxrw.jar”,”—server.port=8080”,”&”]

解释:
FROM 依赖的jdk环境镜像
MAINTAINER 作者可以随便写
COPY 将jar包复制到容器。ps:这里也可以使用ADD关键字,区别是如果目标是压缩包的话ADD会自动解压,COPY不会。
EXPOSE 暴露8080端口
ENTRYPOINT 配置在启动镜像后执行命令。此处也可使用其他关键字,可以自行了解。
5、生成镜像
docker build -t kxrw -f Dockerfile .
注意,Dockerfile后面的 . 不能少,这是将此目录的文件全部打包成镜像。
6、查看镜像,执行完成后就能在本机查看到新生成的镜像了。
docker images
6、启动,将8088映射到8080端口
docker run -d -p 8088:8080 —name kxrw1 —restart=always kxrw