您现在的位置是:热点 >>正文
云计算核心技术Docker教程:为 Node.js 创建一个 Dockerfile
热点5064412人已围观
简介...
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 语法的最新版本。Bui心技ldKit 在构建之前会自动检查语法的更新,确保您使用的是最新版本。
接下来,我们需要在我们的 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。
在NOkeDE_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 您想要复制到镜像中的文件。第二个参数告诉 Doc为 ker 您希望将该文件复制到何处。我们将把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 insdetall --production
此时,我们有一个基于节点版本 12.18.1 的镜像,并且我们已经安装了我们的依赖项。我们需要做的下一件事是将我们的源代码添加到图像中。我们将像使用package.json上面的文件一样使用 COPY 命令。
COPY . .
COPY 命令获取位于当前目录中的所有文.j件并将它们复制到映像中。现在,我们要做的就是告诉 Docker 当我们的镜像在容器内运行时我们想要运行什么命令。我们用CMD命令来做到这一点。
CMD [ "node", "server.js" ]
这是完整的 Dockerfile。
# syntax=docker/dockerfile:1
FROM node:1s 2.18.1
ENV NODE_ENV=production
WORKDIR /app
COPY ["package.json", "package-lock.json*", "./"]
RUN npm install --production
COPY . .
CMD [ "node", "server.js" ]
Tags:
相关文章
lol上票是什么梗
热点lol上票什么意思?上票嘛,就是从主播间开始流行的一种词汇,好像是从bzzd那开始流行的,指的是投出自己的投降票,比如15上票,意思就是15投了,对队友说就是表明自己不想玩了,15...英雄联盟怎么买...
【热点】
阅读更多电饭锅预约2小时是2小时后开始煮吗
热点电饭锅预约时间是指开始时间吗?电饭煲预约时间的意思是预约约定的时间后开始煮饭。举例:比如预约时间2个小时智能饭煲一般的做法是指预约时间结束,同时米饭做熟了,也就是说预约2个小时,那。小熊电饭煲煮粥预约...
【热点】
阅读更多Intel发布消费级SSD 670p:144层QLC、缓存大变
热点Intel SSD 660p系列固态盘在不少笔记本中都能见到,但因为种种原因,评价并不是太好,后续的SSD 665p系列也是昙花一现。 今天,Intel正式发布了新一代“SSD 670p”,仍然是QL...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.samen-maier.at/search/谷歌搜索留痕【tg:seogoogle987】,k2b
- https://www.nextavenue.org/?action=QUERY&s=谷歌搜索留痕【tg:seogoogle987】,URt
- https://www.navylookout.com/?ID=nSBR6Ivdu6lZg1yr2SDs30Lo5sTs76yJ&s=谷歌搜索留痕【tg:seogoogle987】,rBM
- https://www.tombow.com/en/search/谷歌搜索留痕【tg:seogoogle987】,95r
- https://www.xbiao.com/search/index?tpf&wd=谷歌搜索留痕【tg:seogoogle987】,DBg
- https://www.seagrant.wisc.edu/?page=63&s=谷歌搜索留痕【tg:seogoogle987】,TAd
- https://zhidao.baidu.com/index/?action=QUERY&word=谷歌搜索留痕【tg:seogoogle987】,SLy
- https://www.zutari.com/?s=谷歌搜索留痕【tg:seogoogle987】,no0
- https://www.losgatoschamber.com/list/search?action=SEARCH&q=谷歌搜索留痕【tg:seogoogle987】,FIz
- https://www.supersauna.de/catalogsearch/result/?q=谷歌搜索留痕【tg:seogoogle987】,cNR
- https://www.remit.co.jp/pt/?action=CHECK&s=谷歌搜索留痕【tg:seogoogle987】,bTQ
- https://www.lezhin.com/ko/tags/谷歌搜索留痕【tg:seogoogle987】,Aww
- https://www.wou.edu.my/?s=谷歌搜索留痕【tg:seogoogle987】,LDx
- https://www.nytimes.com/search?dropmab=true&query=谷歌搜索留痕【tg:seogoogle987】,bmk
- https://jihoon471.cafe24.com/product/search.html?banner_action=&keyword=谷歌搜索留痕【tg:seogoogle987】Mtg
- https://www.parl.ca/legisinfo/fr/projets-de-loi?parlsession=all&view=list&keywords=谷歌搜索留痕【tg:seogoogle987】,uwp
- https://www.paxnet.co.kr/search/jongmok?kwd=谷歌搜索留痕【tg:seogoogle987】jo5
- https://www.teacherspayteachers.com/Browse/Price-Range/Free/Search:谷歌搜索留痕【tg:seogoogle987】,eJv
- https://www.kuaikanmanhua.com/sou/谷歌搜索留痕【tg:seogoogle987】,mFS
- https://www.whiterock2008.com.tw/search?q=谷歌搜索留痕【tg:seogoogle987】,XvD
- https://www.lindseymedicalsupply.com/search/谷歌搜索留痕【tg:seogoogle987】,2L2
- https://www.qwant.com/?q=谷歌搜索留痕【tg:seogoogle987】,JqE
- https://www.world-architects.com/en/search?term=谷歌搜索留痕【tg:seogoogle987】,1XY
- https://www.miamiopenmri.com/?action=CHECK&s=谷歌搜索留痕【tg:seogoogle987】,Sja
- https://www.yr.no/en/search?q=谷歌搜索留痕【tg:seogoogle987】,epu
- https://m.shoppinghow.kakao.com/m/search/q/谷歌搜索留痕【tg:seogoogle987】pet
- https://www.soccerbible.com/search?q=谷歌搜索留痕【tg:seogoogle987】,mtX
- https://www.tarleton.edu/?s=谷歌搜索留痕【tg:seogoogle987】,feA
- https://www.springfieldlibrary.org/library/?s=谷歌搜索留痕【tg:seogoogle987】,E6L
- https://www.roberthalf.com/us/en/jobs/all/谷歌搜索留痕【tg:seogoogle987】V2r
- https://www.kaiyueleather.com/search/谷歌搜索留痕【tg:seogoogle987】,Qyd
- https://www.tycoonstory.com/?s=谷歌搜索留痕【tg:seogoogle987】,59T
- https://www.nbm.org/?action=QUERY&s=谷歌搜索留痕【tg:seogoogle987】,I7S
- https://www.laoairlines.com/?action=QUERY&s=谷歌搜索留痕【tg:seogoogle987】,IMU
- https://www.pickett.co.uk/collections/vendors?q=谷歌搜索留痕【tg:seogoogle987】,Tzq
- https://www.polliwogs.com/search/谷歌搜索留痕【tg:seogoogle987】,TWQ
- https://www.kissthekangaroo.com.au/index.php?route=product/search&tag=谷歌搜索留痕【tg:seogoogle987】,RjY
- https://www.klatreverden.no/search?q=谷歌搜索留痕【tg:seogoogle987】,jIf
- https://www.universal-music.co.jp/?ID=1sIcckCTeBS8FjzCshAW9w53s8gr691o&s=谷歌搜索留痕【tg:seogoogle987】,3kI
- https://www.tcv.org.uk/search/谷歌搜索留痕【tg:seogoogle987】,qg9
- https://search.danawa.com/dsearch.php?query=谷歌搜索留痕【tg:seogoogle987】9D1
- https://www.sonepar.ch/fr/search?q=谷歌搜索留痕【tg:seogoogle987】,XIt
- https://www.impactpool.org/search/?type=79&q=谷歌搜索留痕【tg:seogoogle987】xmJ
- https://www.remit.co.jp/id/?s=谷歌搜索留痕【tg:seogoogle987】,9IK
- https://www.teacherspayteachers.com/Browse/Price-Range/Free/Search:Western International University Physics degree=谷歌搜索留痕【tg:seogoogle987】,RYR
- https://www.ushmm.org/search/results.php?q=谷歌搜索留痕【tg:seogoogle987】,0Oi
- https://www.springfieldlibrary.org/?s=谷歌搜索留痕【tg:seogoogle987】,1li
- https://www.merchbar.com/search?q=谷歌搜索留痕【tg:seogoogle987】,aQc
- https://www.impactpool.org/search/?type=79&q=谷歌搜索留痕【tg:seogoogle987】zpl
- https://www.sogou.com/web?query=谷歌搜索留痕【tg:seogoogle987】,q2b