政务服务网站建设汇报,青岛手机建站多少钱,wordpress开发平台,特效网站部署文章目录#xff1a;目录
docker部署#xff0c;原理#xff0c;命令#xff0c;可以参考#xff1a;docker原理图#xff0c;部署#xff0c;命令 目录
将springboot部署到docker中
遇到过的问题#xff1a;
pom配置
操作步骤
生成jar
构建镜像
查看镜像d…部署文章目录目录
docker部署原理命令可以参考docker原理图部署命令 目录
将springboot部署到docker中
遇到过的问题
pom配置
操作步骤
生成jar
构建镜像
查看镜像docker images
运行镜像
查看运行的镜像 将springboot部署到docker中 遇到过的问题
生成出来的jar包缺少依赖JAR的启动时找不到主类容器启动后主机拒绝
pom配置
pom.xml的文件,下面红色的是docker相关的 ?xml version1.0 encodingUTF-8?
project xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlnshttp://maven.apache.org/POM/4.0.0xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.10-SNAPSHOT/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.sheng/groupIdartifactIdmyDemo/artifactIdversion0.0.1-SNAPSHOT/versionnamemyDemo/namedescriptionDemo project for Spring Boot/descriptionpropertiesjava.version1.8/java.versionspring-cloud.version2021.0.5/spring-cloud.versiondockerfile-maven-plugin.version1.4.10/dockerfile-maven-plugin.versiondocker.image.prefixspringboot/docker.image.prefix/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-loadbalancer/artifactId/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-test/artifactIdscopetest/scope/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdscopetest/scope/dependencydependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.47/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-simple/artifactIdversion1.7.25/versionscopecompile/scope/dependencydependencygroupIdcom.google.code.gson/groupIdartifactIdgson/artifactId/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.4/version/dependencydependencygroupIdcom.spotify/groupIdartifactIddockerfile-maven-plugin/artifactIdversion${dockerfile-maven-plugin.version}/version/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring-cloud.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildplugins!--docker和maven结合的配置--plugingroupIdcom.spotify/groupIdartifactIddockerfile-maven-plugin/artifactIdversion${dockerfile-maven-plugin.version}/versionexecutionsexecutioniddefault/idgoals!--如果package时不想用docker打包,就注释掉这个goal,运行mvn package时会自动执行build目标构建Docker镜像。当运行mvn deploy命令时会自动执行push目标将Docker镜像push到Docker仓库--!--goalbuild/goalgoalpush/goal--/goals/execution/executionsconfiguration!--在maven运行docker时dockerFile文件必须在这个文件夹内--contextDirectory${project.basedir}/docker/contextDirectory!--repository指定docker镜像的repo名字--repository${docker.image.prefix}/demo/repository!--tag指定docker镜像的tag--tagv1/tag!--buildArgs可以指定一个或多个变量传递给Dockerfile在Dockerfile中通过ARG指令进行引用。暂时不用注释掉--!--buildArgsJAR_FILE${project.build.finalName}.jar/JAR_FILE/buildArgs--/configuration/pluginplugin!--用于生成jar的时候将依赖的包也导入进去否则无法启动另外MANIFEST.MF文件中会找不到启动类--groupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdconfigurationexcludesexcludegroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/exclude/excludesincludeSystemScopetrue/includeSystemScopemainClass${start-class}/mainClass/configurationexecutionsexecutiongoalsgoalrepackage/goal/goals/execution/executions/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-surefire-plugin/artifactIdconfigurationtestFailureIgnoretrue/testFailureIgnore/configuration/plugin/plugins/buildrepositoriesrepositoryidspring-milestones/idnameSpring Milestones/nameurlhttps://repo.spring.io/milestone/urlsnapshotsenabledfalse/enabled/snapshots/repositoryrepositoryidspring-snapshots/idnameSpring Snapshots/nameurlhttps://repo.spring.io/snapshot/urlreleasesenabledfalse/enabled/releases/repository/repositoriespluginRepositoriespluginRepositoryidspring-milestones/idnameSpring Milestones/nameurlhttps://repo.spring.io/milestone/urlsnapshotsenabledfalse/enabled/snapshots/pluginRepositorypluginRepositoryidspring-snapshots/idnameSpring Snapshots/nameurlhttps://repo.spring.io/snapshot/urlreleasesenabledfalse/enabled/releases/pluginRepository/pluginRepositories/project 操作步骤
生成jar
先maven上点击clean compile package在target生成JAR包myDemo-0.0.1-SNAPSHOT.jar把它用解压缩包打开看看MANIFEST.MF中有没有主函数入口有红圈的就行不然无法启动会报错no main manifest attribute, in /xxxxx.jar异常将 F:\workspace\arch\spring-cloud-demo\target\myDemo-0.0.1-SNAPSHOT.jar 拷贝到 F:\workspace\arch\spring-cloud-demo\docker
F:\workspace\arch\spring-cloud-demo\docker 文件夹中应该有Dockerfile 和 myDemo-0.0.1-SNAPSHOT.jar然后用bash做docker命令
docker images 查看镜像 构建镜像 docker build -t springboot/demo . 最后的警告没有影响
查看镜像docker images 删除镜像只需删除镜像对应的image id即可例如删除java执行命令 docker rmi d23bdf5b1b1b 若存在两个镜像的image id相同需要通过REPOSITORYTAG删除例如删除java执行命令 docker rmi java 8 若报删除的镜像存在依赖镜像错误则需通过 docker rm 【依赖镜像id】命令依次删除依赖 若镜像已经运行需要先停止运行再删除
运行镜像
docker run -p 8005:8005 -d springboot/demo
-p表示端口映射此时将服务器中的8005端口映射到容器中的8005端口 查看运行的镜像 docker ps 查看所有容器包含未运行的docker ps -a 停止运行镜像docker stop ceb5f1a71a29 11.浏览器访问 http://192.168.99.100:8005/ 出现项目页面即发布成功