docker 部署含netty ssl认证的java程序问题

1、pom.xml说明

netty ssl依赖以下文件,找出netty对应版本的tcnative依赖版本,在netty github官网有依赖说明。我这里用的是4.1.31.Final,对应netty ssl依赖的tcnative版本2.0.19.Final。


		
			io.netty
			netty-all
			${netty-all.version}
		
		
			io.netty
			netty-tcnative
			${tcnative.version}
			linux-x86_64
		
				
			io.netty
			netty-tcnative
			${tcnative.version}
			linux-x86_64-fedora
		
		
			io.netty
			netty-tcnative-boringssl-static
			${tcnative.version}
		



		smart-home
		
			
				src/main/java
			
			
				src/main/resources
			
		
		
			
				org.springframework.boot
				spring-boot-maven-plugin
				
					
						
							repackage
						
					
				
			
			
			
				org.apache.maven.plugins
				maven-compiler-plugin
				
					${java.version}
					${java.version}
				
			
			
				kr.motd.maven
				os-maven-plugin
				${os.plugin.version}
				
					
						initialize
						
							detect
						
					
				
			
		
	

		
			public
			aliyun nexus
			http://maven.aliyun.com/nexus/content/groups/public/
			
				true
			
		
	
	
		
			public
			aliyun nexus
			http://maven.aliyun.com/nexus/content/groups/public/
			
				true
			
			
				false
			
		
	

2、编写Dockerfile

用镜像源anapsix/alpine-java 替换 openjdk:8-jdk-alpine,anapsix/alpine-java已经安装了openssl,解决了在openjdk:8-jdk-alpine下找不到证书问题。

#FROM openjdk:8-jdk-alpine

FROM anapsix/alpine-java

MAINTAINER Ellis <[email protected]>

ADD target/smart-home.jar /data/

#start script
ADD smart-home_start.sh /data/

VOLUME ["/tmp"]

WORKDIR /data

ENTRYPOINT ["/bin/sh"]

CMD ["./smart-home_start.sh"]

EXPOSE 29041
EXPOSE 39041

3、编写smart-home_start.sh

▽
#!/bin/bash -e

set -x

trap 'terminate' TERM INT

terminate() {
    echo "SIGTERM received, terminating $PID"
    kill -TERM "$PID"
    wait "$PID"
}

#cat /tmp/hosts >> /etc/hosts
cat /etc/hosts
echo "Starting Smart-Home"
java -server \
-XX:+PrintFlagsFinal -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap \
-XX:+UseParallelGC -XX:ParallelGCThreads=8 -XX:MaxGCPauseMillis=20 -XX:+UseAdaptiveSizePolicy \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:+ExitOnOutOfMemoryError -jar \
-Dspring.profiles.active=${env} \
-Dserver.port=29041 \
-Dsmart.homePath=/tmp/ \
"./smart-home.jar" &
PID=$!
wait "$PID"

 

你可能感兴趣的:(微服,Spring,Cloud)