记录一次docker线上部署微服务过程

这次docker部署微服务过程十分坎坷,记录一下发生的问题。

开发环境

公司服务器在阿里云上,本地开发为windows开发,项目打包镜像希望能在本地完成,不依赖dockerfile,这样可以不用把jar包拉来拉去。故pom.xml配置如下


        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
            
                com.spotify
                docker-maven-plugin
                ${docker.maven.plugin.version}
                
                    
                        build-image
                        package
                        
                            build
                        
                    
                
                
                    docker-aliyun
                    true
                    ${docker.repostory}/${docker.registry.name}/${project.artifactId}:${project.version}
                    java:8
                    ["java", "-jar", "-Dspring.profiles.active=prod","/${project.build.finalName}.jar"]
                    
                        
                            /
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                        
                    
                
            
        
    

需要在maven的配置文件setting.xml添加配置


      docker-aliyun
      账号
      密码
	  
            
            邮箱
      
    

这样在IDEA可以直接docker:build直接推送到阿里云仓库。
记录一次docker线上部署微服务过程_第1张图片
所以在这之前你要有自己的阿里云镜像仓库,去注册就好了。

遇到的问题

问题1:Error: Unable to access jarfile

docker run之后docker ps -a查看刚才的容器,显示exit,失败了。查看日志

docker logs (containerId)

显示Error: Unable to access jarfile
后来找了很久,在idea查看target没有jar包,项目还没有打包上去,导致根本没有jar包。
重新package就好了。

问题2:无法注册到服务中心

阿里云服务器有外网地址和内网地址,需要替换prod配置文件的路径为内网地址(我的服务都在同一服务器)

eureka:
  client:
    service-url:
      defaultZone: http://10.170.114.250:8001/eureka/

问题3:找不到config配置中心

部署一个服务,失败了,查看日志显示:
Could not locate PropertySource: I/O error on GET request for http://容器id:8003
解决方法:

eureka:
  instance:
    prefer-ip-address: true

prefer-ip-address: true #其本质就是为了获取本机的真实IP,因为docker容器都是相互隔离的,有真实IP才可以找得到对方。

问题4:module相互依赖打包问题

https://www.cnblogs.com/li150dan/p/11114773.html

你可能感兴趣的:(记录一次docker线上部署微服务过程)