docker部署前端和后端打包程序

docker部署前端和后端打包程序,第1张

docker启动命令

nginxconf修改为:

程序更新:每次只需要把前端vue打包程序更新到/data2/geovis/docker_nginx/nginx_share_dir下即可。

Dockerfile文件内容:

startsh内容(最后一个jar包不能后台运行,否则容器会自动退出):

构建docker镜像

启动geovis-jar容器:

程序更新:每次只需要docker restart geovis-jar重启容器即可。

使用fabric 8和maven结合,可以在使用maven构建应用时自动构建docker image。

示例源码,包含POM配置,Dockerfile

借用之前的Dockerfile,不过 ADD 命令稍有不同,这里的路径是 maven/for_docker-001-SNAPSHOTjar ,因为使用下面的 assembly 参数配置后,jar包会拷贝到docker build目录下。

构建后的工程目录如下: 可以看到 Dockerfile 和 maven 目录平级

docker执行jar不输出nohub cyan20115

码龄8年

关注

docker run一个容器,但它什么也不显示,没有输出,没有错误? docker ps显示没有正在运行的容器?

Terminal

$ docker run -d -p 80:8080 -p 443:8443 -t markdownhtml:11

8eba06d44bf236109cf65b7b93842e9c898370cac1740aa2bab557a0fc8e52b9

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

大多数情况下,容器会出错并自动退出。 我们可以使用docker logs <container id>来检查日志文件,并找出导致退出的错误。

docker将jar包打镜像启动/镜像导出为tar包启动 原创

2022-01-19 18:59:06

3点赞

Vainycos

码龄5年

关注

本文旨在将通用的jar包通过Dockerfile文件打成docker镜像包启动,并支持导出到tar包后到另一台机器上启动。镜像包的好处在于无法被解包,并且不被服务器环境所影响,因为Dockerfile文件已经实现了最小环境,每个镜像都是一套最小启动环境。目前假设读者的Linux服务器版本为Centos 76及以上,且安装了docker环境。

一jar包打docker镜像

将jar包和Dockerfile文件放在同一个目录下(dockerfile文件详见下文附录部分)

build 命令

appname为镜像名可自定义,注意最后面有一个空格加一个点

docker build -f Dockerfile -t ${镜像名}:${version}

1

1

images 命令

查看已经上传的镜像

docker images

1

1

image-20220119184720801

run 命令

imageid通过 docker images命令获取,8080为镜像内部端口,8099为对外暴露端口

docker run -p 8099:8080 imageid

1

1

ps 命令

查看运行中的镜像

docker ps

1

1

image-20220119184952445

二 如何将镜像导出为tar包

导出tar包(imageid通过 docker images命令获取):/usr/local/docker-build/appnametar为自定义导出的目录以及tar包名称。

docker save -o ${镜像名}targz ${镜像名}:${version}

1

1

三 拿到tar包后如何加载到docker上并启动

load 命令

docker load -i appnametar

1

1

这个时候我们查看docker images会发现我们的REPOSITORY以及TAG,我们需要自己打个标签比如(如果在build的时候就已经打好标签可以忽略,又或者想自己重命名标签可参考以下命令):

docker tag imageid 镜像名:${version}

1

1

run 命

如果SpringBoot的jar包项目采用传统的方式去打包部署到服务器上,会非常的繁琐和麻烦。每次项目修改后重新部署,都需要先将项目进行打包,然后将jar包发送到服务器,指定位置,然后在运行java -jar的命令,如果每次都进行人工打包部署,效率会非常的低。所以我们可以采用jenkins+docker的方式实现自动化部署。

在这个例子中需要增加三个文件:

Maven的配置文件: pomxml

一个Java类:Hellojava

一个Dockerfile

源码是下面的代码:

>

buildah通过脚本或者命令来构建容器镜像过程如下:

1:获取基础镜像openjdk:8-jdk-alpine

2:将jar包拷贝到镜像中

3:配置容器启动入口点

4:通过commit命令将其保存为镜像文件

buildah通过dockerfile构建容器镜像过程如下,直接通过buildah build-using-dockerfile替代docker build指令便可实现,

与Docker异同

如果添加了 application 插件的话,默认 gradle-docker 插件会添加一个 distDocker 的 gradle task,用来构建一个 包含所有程序文件 的 docker 镜像。

配置镜像名称和版本号

其中镜像的 tag 默认的构成为:项目组/应用名称:版本号

projectgroup:标准的 gradle 属性,如果不进行定义,插件默认会 省略 ${projectgroup} 这个属性。

applicationName:应用被容器化时的 名称。

tagVersion:可选属性,会作为镜像的 标签。默认值为 projectversion,如果未指定 projectversion,则使用 latest 作为标记。

配置docker构建基础信息:

其中,baseImage 相当于 Dockerfile 中声明的 FROM。声明了在 构建镜像 是基于的 Image,maintainer 相当于 MAINTAINER ,声明了 镜像作者。如果声明了 registry 地址,插件在 镜像射生成后 可以自动 push 到该地址。其他的配置还包括 docker hub 的 地址、用户名 和 密码。

taskBuilder 的任务配置:

构建完成以后,项目根目录的 build/docker 文件夹下面会出现 Dockerfile 和 spring-boot-gradle-for-docker-10jar 文件。其中,以上的 task 等同于以下的 Dockerfile。

如果觉的在 task 中编写 Dockerfile 替换脚本 非常别扭,也可以直接在 task 中指定 Dockfile 的 文件路径,直接使用已有的文件来生成镜像:

通过 file() 指定 task 使用位于 项目根目录 的 Dockerfile 来生产镜像。

gradle 首先会运行 本地测试,然后进行项目打包,进一步根据 docker-gradle 插件进行镜像构建。

等待出现 BUILD SUCCESSFUL 就表明任务运行成功。可以观察到镜像的名称为:

运行 docker images 查看本地镜像,进一步验证镜像构建成功。

在工程根目录下新建Dockerfile文件,内容如下:

以上就是关于docker部署前端和后端打包程序全部的内容,包括:docker部署前端和后端打包程序、docker入门—4. 使用fabric8构建并推送Docker、docker执行jar不输出nohub.out等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9523263.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存