您现在的位置是:热点 >>正文
云计算核心技术Docker教程:为 Node.js 创建一个 Dockerfile
热点18643846人已围观
简介...
Dockerfile 是一个文本文档,其中包含组装 Docker 映像的说明。当我们通过执行docker build 命令告诉 Docker 构建我们的镜像时,Docker 会读取这些指令,执行它们,并因此创建一个 Docker 镜像。
让我们来看看为我们的应用程序创建 Dockerfile 的过程。在项云计目的根目录中,创建一个名为的文件Dockerfile并在文本编辑器中打开该文件。
添加到 Dockerfile 的第一行是# syntax解析器指令。虽然是可选的,但该指令指示 Docker 构建器在解析 Dockerfile 时使用什么语法,并允许启用 BuildKit 的旧 Docker 版本在开始算核构建之前升级解析器。解析器指令 必须出现在 Dockerfile 中任何其他注释、空格或 Dockerfile 指令之前,并且应该是 Dockerfiles 中的第一行。
# syntax=docker/dockerfile:1
我们建议使用docker/dockerfile:1,它始终指向版本 1 语法的最新版心技本。BuildKit 在构建之前会自动检查语法的更新,确保您使用的是最新版本。
接下来,我们需要在我们的 Dockerfile 中添加一行,告诉 Docker 我们希望为我们的应用程序使用什么基础镜像。
# syntax=docker/dockerfile:1
FROM node:12.18.1
Docker术D 镜像可以从其他镜像继承。因此,我们将使用官方的 Node.js 镜像,而不是创建我们自己的基础镜像,该镜像已经拥有运行 Node.js 应用程序所需的所有工具和包。您可以像考虑面向对象编程中的类继承一样考虑这一点。例如,如果我们能够在 JavaScript 中创建 Docker 镜像,我们可能会编写如oc下内容。
class MyImage extends NodeBaseImage {}
这将创建一个称为MyImage从基类继承功能的类NodeBaseImage。
同样,当我们使用该FROM命令时,我们会告诉 Docker 在我们的镜像中包含镜像中的所有功能node:12.18.1。
在NODkeE_ENV环境变量指定在其中的应用程序运行的环境(通常,开发或生产)。为提高性能可以做的最简单的事情之一是设置NODE_ENV为production.
ENV NODE_ENV=production
为了在运行其余命令时更容易,让我们创建一个工作目录。这会指示 Docker 使用此路径作为所有后续r教命令的默认位置。这样我们就不必输入完整的文件路径,而是可以使用基于工作目录的相对路径。
WORKDIR /app
通常,一旦您下载了用 Node.js 编写的项目,您要做的第一件事就是安装 npm 包。这可确保您的应用程序将其所有依赖项安装到node_modulesNode 运行时能够找到它们的目录中。
在程:我们可以运行之前npm install,我们需要将我们的package.json和package-lock.json文件放入我们的图像中。我们使用COPY命令来做到这一点。该COPY命令有两个参数。第一个参数告诉 Docker 您想要复制到镜像中的文件。第二个参数告诉 Docker 您希望将该文件为 复制到何处。我们将把package.json和package-lock.json文件复制到我们的工作目录中/app。
COPY ["package.json", "package-lock.json*", "./"]
请注意,我们只是复制 package.json 文件,而不是复制整个工作目录。这使我No们能够利用缓存的 Docker 层。一旦我们将文件放入映像中,我们就可以使用该RUN命令来执行命令 npm install。这与我们在本地机器上运行 npm install 完全相同,但这次这些 Node 模块将安装到node_modules我们映像内的目录中。
RUN npm install --productideon
此时,我们有一个基于节点版本 12.18.1 的镜像,并且我们已经安装了我们的依赖项。我们需要做的下一件事是将我们的源代码添加到图像中。我们将像使用package.json上面的文件一样使用 COPY 命令。
COPY . .
COPY 命令获取位于当前目录中的所有文件并将它们复制到映像中。现在,我.j们要做的就是告诉 Docker 当我们的镜像在容器内运行时我们想要运行什么命令。我们用CMD命令来做到这一点。
CMD [ "node", "server.js" ]
这是完整的 Dockerfile。
# syntax=docker/dockerfile:1
FROM node:12.18.1
ENV NODE_ENs V=production
WORKDIR /app
COPY ["package.json", "package-lock.json*", "./"]
RUN npm install --production
COPY . .
CMD [ "node", "server.js" ]
Tags:
相关文章
欧盟将公布新规 谷歌等“看门人”面临年营收10%的罚款
热点据报道,欧盟的一份新法规草案显示,被欧盟视为“看门人”的科技巨头,如果不公平地偏袒自家服务或不遵守其他义务,可能面临高达其年营收10%的罚款。 这项新规预计于当地时间周二公布。根据规定,被视为“看门人...
【热点】
阅读更多标签: 广州车展2025 元戎启行 城市NOA Robotaxi RoadAGI
热点云梦级11月20日云梦级消息,2025年广州车展期间,元戎启行携多款搭载组合辅助驾驶方案的合作车型集中亮相,涵盖SUV、MPV、越野车等多个品类,全面展现元戎启行辅助驾驶系统在多平台、多场景的适配能力...
【热点】
阅读更多标签: 特斯拉 Model Y 3 0息购车
热点云梦级1月6日云梦级消息,1月6日,特斯拉中国为购买Model 3和Model Y、Model Y L车型提供5年0息方案。 Model 3/Y首付7.99万起,月供可低至1918元;Model Y...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.wattpad.com/search/外推留痕软件【tg:seogoogle987】9TS
- https://www.ng-slo.si/si/iskanje?cat=114&q=外推留痕软件【tg:seogoogle987】,b1c
- https://www.unclefossil.com/search/外推留痕软件【tg:seogoogle987】,XiP
- https://www.seforall.org/search?keywords=外推留痕软件【tg:seogoogle987】,LNZ
- https://www.teacherspayteachers.com/Browse/Search:外推留痕软件【tg:seogoogle987】,Kyt
- https://www.takachi-enclosure.com/search?eqYB=gnI31Ou&text=外推留痕软件【tg:seogoogle987】,Ysd
- https://www.teacherspayteachers.com/Browse/Price-Range/Free/Search:外推留痕软件【tg:seogoogle987】,7Cz
- https://www.randjleather.co.uk/index.php?route=product/search&tag=外推留痕软件【tg:seogoogle987】,exQ
- https://www.pixiv.net/tags/外推留痕软件【tg:seogoogle987】,ohk
- https://www.maafushidive.com?collections?vendors?q=外推留痕软件【tg:seogoogle987】,gv6
- https://www.wikiart.org/pt/Search/外推留痕软件【tg:seogoogle987】,qkQ
- https://search.danawa.com/dsearch.php?query=外推留痕软件【tg:seogoogle987】y2z
- https://www.laoairlines.com/?action=QUERY&s=外推留痕软件【tg:seogoogle987】,50R
- https://www.pierreherme.com/catalogsearch/result/?q=外推留痕软件【tg:seogoogle987】,0ol
- https://www.normani.de/search?q=外推留痕软件【tg:seogoogle987】,c9c
- https://hsmoa.com/search?query=外推留痕软件【tg:seogoogle987】uKh
- https://www.rea.govt.nz/search?searchterm=外推留痕软件【tg:seogoogle987】,1Js
- https://www.springfieldlibrary.org/?s=外推留痕软件【tg:seogoogle987】,46i
- https://www.ntv.co.jp/3min/search/?action=QUERY&q=外推留痕软件【tg:seogoogle987】,AL8
- https://www.zalora.sg/catalog/?cat=112&q=外推留痕软件【tg:seogoogle987】,eMT
- https://www.lezhin.com/ko/tags/外推留痕软件【tg:seogoogle987】,fM0
- https://www.searcychamber.com/list/search?AsfnA=DtkTQzs&q=外推留痕软件【tg:seogoogle987】,oNC
- https://www.resilienz-akademie.com/?cat=71&s=外推留痕软件【tg:seogoogle987】,AYY
- https://www.niaogebiji.com/pc/article/search?keyword=外推留痕软件【tg:seogoogle987】,JlI
- https://www.vocabulary.com/dictionary/外推留痕软件【tg:seogoogle987】,MpA
- https://www.wheels24.gr/?action=CHECK&s=外推留痕软件【tg:seogoogle987】,wSA
- https://www.tmtpost.com/search?q=外推留痕软件【tg:seogoogle987】,KZY
- https://www.wellbees.com/index.php/catalogsearch/result/index/?q=外推留痕软件【tg:seogoogle987】,cOI
- https://www.rockngem.com/?action=CHECK&s=外推留痕软件【tg:seogoogle987】,nzd
- https://www.pearson.com/en-us/search.html?aq=外推留痕软件【tg:seogoogle987】,MYF
- https://www.kaiyueleather.com/search/外推留痕软件【tg:seogoogle987】,QzQ
- https://www.mingwai.edu.hk/?langzh-hant&s=外推留痕软件【tg:seogoogle987】,718
- https://zhidao.baidu.com/index/?action=QUERY&word=外推留痕软件【tg:seogoogle987】,nc9
- https://www.remit.co.jp/vi/?s=外推留痕软件【tg:seogoogle987】8qD
- https://www.vet-direct.com/search?cat=72&term=外推留痕软件【tg:seogoogle987】,TnS
- https://www.flickr.com/photos/tags/外推留痕软件【tg:seogoogle987】zi5
- https://www.smics.com/tc/site/search?token=外推留痕软件【tg:seogoogle987】,Czy
- https://www.thealexandrian.net/?s=外推留痕软件【tg:seogoogle987】,UJJ
- https://www.localfootdoc.com/?s=外推留痕软件【tg:seogoogle987】,3gI
- https://www.luxurysociety.com/en/search?q=外推留痕软件【tg:seogoogle987】,PtC
- https://www.teamlab.art/ko/?submit=外推留痕软件【tg:seogoogle987】,7b8
- https://www.remit.co.jp/id/?s=外推留痕软件【tg:seogoogle987】,CHp
- https://www.tullygroup.us/?ID=hbkq8jFjrQlVRrwzEmvoUJJAY4e1Lfo5&s=外推留痕软件【tg:seogoogle987】,fUC
- https://www.mdbg.net/chinese/dictionary?page=worddict&wdrst=0&wdqb=外推留痕软件【tg:seogoogle987】,zrW
- https://www.scq.ubc.ca/?page=2&s=外推留痕软件【tg:seogoogle987】,3iz
- https://www.tarleton.edu/?s=外推留痕软件【tg:seogoogle987】,5it
- https://www.universal-music.co.jp/search/?q=外推留痕软件【tg:seogoogle987】,fPy
- https://www.seagrant.wisc.edu/?page=63&s=外推留痕软件【tg:seogoogle987】,KZV
- https://www.metaltix.com/?view=tours&filter=search&q=外推留痕软件【tg:seogoogle987】,Gn7
- https://www.remit.co.jp/vi/?s=外推留痕软件【tg:seogoogle987】,oYU