大发快乐8APP下载_大发快乐8APP官方 - 大发快乐8APP下载,大发快乐8APP官方是新浪网最重要的频道之一,24小时滚动报道国内、国际及社会新闻。每日编发新闻数以万计。

将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定

  • 时间:
  • 浏览:1

它的方便体现在,当我完成了项目代码的更新,只需用跑一下你这个 脚本,否则等待歌曲一会儿,项目就会自动打包成docker image,否则自动的在我的服务器上运行该container。

使用grep命令匹配到tag为none的image,awk是一个多多 强大的文本分析工具,{print $3}表示打印出匹配到的每一行的第一个多多 字段,也统统 docker的image id。可能是$0话语表示当前整行的数据。

统统有在这里做一个多多 判断,第一个多多 if判断可能存在名字为传入参数的container正在运行,就停止当前容器再重新启动。可能不存在则直接启动容器。

执行前端的打包命令,生成静态文件目录。

否则登录dockerHub,将定制好的镜像推送到dockerHub中。detectivehlh统统 dockerHub的用户名,mine是image的名字。

最后一句统统 移除多次更新后冒出的tag为none的无用镜像。完正的脚本如下。

在打包事先,首先需用一个多多 可正常运行的前端应用。你这个 能没有 使用umi可能create-react-app来构建。

在项目中的完正构建脚本如下。

第一次构建不需要生成tag为none的image,否则中间每次再次执行该命令就会冒出统统 的请况。统统有每次构建了一个多多 新的image后,需用清除调不需用的image。

再添加事先两种就想引入docker,统统有就打算利用docker容器来部署这次的前端应用。

run命令就不过多解释了。-d表示后台运行容器并返回容器ID,--name表示设置容器的名字,-p表示设置端口,将阿里云服务器的300端口映射到容器的30端口,最后一句表示要启动哪个image(好像还是解释了一遍)。

统统有我的观点是,分请况来。目前来说我的项目没有 少数几所许多人在用,也还在存在迭代阶段。否则代码仓库是私有的,统统有我完正不需要担心隐私的疑问。服务未经测试就直接上线对于我来说,确实疑问统统 大。首先我会在本地测试,确认无误后才会执行部署操作。统统有在不同的阶段,找到最适合所许多人的方案就OK。

deploy.sh是放进服务端的构建脚本。放进默认的登录用户下。朋友发现,中间还跟了个mine,这是在服务器上运行的docker镜像的名字。这里暂时没有 对container的名字添加hash,可能所许多人的小项目,暂时没有 必要。

而清除Dockerfile则是为了避免更新了Dockerfile,而这次却没有 得到最新的配置。

xargs是一个多多 给一些命令(也统统 中间的docker rmi)传递参数的一个多多 过滤器,将标准输入转添加命令行参数。

总结来说,上述命令统统 找到tag为none的image的ID,否则使用docker rmi命令移除该image。

通过ssh命令,登录远程服务器,否则执行参数中的脚本。

可能是所许多人用的,那完正不需要担心,想为什么会么会么搞为什么会么会么搞。否则可能是开放给所许多人用的否则有一定的访问量,比如博客,没有 对于一些用户来说,你这个 土措施就不为什么会么会么友好。

从中间步骤来看,朋友还需用一个多多 服务器端的部署脚本。朋友可能会说,标题有的是说一个多多 脚本甩掉吗?em。。。服务器一个多多 ,本地一个多多 ...简称只需一个多多 脚本。

这里是在开发本地,使用docker命令来打包,统统有该脚本对docker有强依赖。build命令表示打包docker应用的,-t选项则制定了docker镜像的名字和tag,tag会默认为latest。

FROM制定了该定制容器的基础镜像为nginx:latest;COPY命里将打包好的静态文件目录克隆qq好友好友到容器内的/usr/share/nginx/html/目录下,否则将nginx的配置写入容器中对应的位置; EXPOSE则是设置对外暴露容器的30端口。

在本地的构建脚本中,朋友传入了docker运行的container的名字。在服务器构建脚本中需用来接收它。否则更新事先推送的docker image。

可能每次更改后dist中的内容肯定与事先不同,确实你这个 步显得有的是没有 必要。运行npm的打包命令也会自动清楚该目录。

前段时间,所许多人搞了个阿里云的服务器。想所许多人在中间折腾,否则你可不可以 可能所许多人瞎折腾而污染了现有的环境。毕竟,现在的阿里云可能没有 免费的快照服务了。要想还原话语,最简单的土措施统统 重新装系统。而一旦重装,事先的搭建的所有环境就都白搭了。

在启动container时朋友会面对两种请况,名字为传入参数的container可能在运行了。而在此时可能再次运行docker run命令就会报错而原应着朋友无法使用最新的container,也无法达到更新应用的目的。

最初写你这个 脚本,主要目的是为了方便。统统有脚本中为了达到你这个 目的做了一些调整。最终我达成了满足我需求的一个多多 方便的部署脚本。

想看 标题进来的兄dei,可能统统 想打包一个多多 docker镜像,没有 你只需用Dockerfile文件和docker build命令就OK了。

否则你这个 土措施会给实际的生产环境带来一些不可控的疑问。比如,脚本需用没有 上传,可能涉及一些服务器的敏感信息。否则可能你不小心上传了,那你的服务器就最少裸奔了;再比如,你对你的代码需用要十分自信,没有 经过测试的代码就直接部署,会带来一些风险。

否则需用在项目中添加默认nginx配置文件。