您现在的位置是:热点 >>正文
云计算核心技术Docker教程:为 Node.js 创建一个 Dockerfile
热点3521人已围观
简介...
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 语法的最新版本。Bu心技ildKit 在构建之前会自动检查语法的更新,确保您使用的是最新版本。
接下来,我们需要在我们的 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。
在NODE_ENVke环境变量指定在其中的应用程序运行的环境(通常,开发或生产)。为提高性能可以做的最简单的事情之一是设置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_Es NV=production
WORKDIR /app
COPY ["package.json", "package-lock.json*", "./"]
RUN npm install --production
COPY . .
CMD [ "node", "server.js" ]
Tags:
相关文章
阿里巴巴 Qwen 团队发布下一代 GUI 自动化框架 Mobile-Agent-v3 和 GUI-Owl
热点近日,阿里巴巴 Qwen 团队推出了两款革命性的产品 ——Mobile-Agent-v3和 GUI-Owl,这些工具旨在解决图形用户界面(GUI)自动化中的一系列挑战。 现代计算设备普遍采用图形用户界...
【热点】
阅读更多机器学习隐私研究新进展:数据增强风险被低估,新算法“降服”维数依赖
热点编者按:如今,数据是推动人工智能创新的核心要素。但数据的安全和隐私问题限制了数据充分释放其潜能。一直以来,微软都倡导打造负责任的人工智能,并正在开发和利用多种技术以提供更强大的隐私保护、确保数据安全。...
【热点】
阅读更多标签: 视觉中国 港股上市 A+H股 内容授权
热点云梦级6月15日云梦级消息,视觉(中国)文化发展股份有限公司(简称:“视觉中国”)日前递交招股书,准备在港交所上市。 截至今日收盘,视觉中国股价为22.25元,市值为156亿元。一旦在港股上市,视觉中...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.world-architects.com/en/search?term=谷歌搜索留痕【tg:seogoogle987】,VZN
- https://www.duksung.ac.kr/search/front/Search.jsp?qt=谷歌搜索留痕【tg:seogoogle987】We5
- https://www.maine.gov/pfr/professionallicensing/search/node?keys=谷歌搜索留痕【tg:seogoogle987】,UXA
- https://www.wheels24.gr/?action=CHECK&s=谷歌搜索留痕【tg:seogoogle987】,1T1
- https://www.routesonline.com/search/?query=谷歌搜索留痕【tg:seogoogle987】,pOr
- https://www.ng-slo.si/si/iskanje?cat=114&q=谷歌搜索留痕【tg:seogoogle987】,d81
- https://www.sensorshop24.de/catalogsearch/result/index/?type=132&q=谷歌搜索留痕【tg:seogoogle987】,9XC
- https://wwwcp.umes.edu/search/谷歌搜索留痕【tg:seogoogle987】,B1H
- https://xn--lgernevedlystskoven-lxb.dk/search/谷歌搜索留痕【tg:seogoogle987】,d9J
- https://www.reallywildbirdfood.co.uk/store/search?q=谷歌搜索留痕【tg:seogoogle987】,KeS
- https://www.therapeuticassociates.com/?cat=5&s=谷歌搜索留痕【tg:seogoogle987】,XrR
- https://www.kores.com/?s=谷歌搜索留痕【tg:seogoogle987】,IGV
- https://yokohama-oht.com/?action=CHECK&s=谷歌搜索留痕【tg:seogoogle987】,kV2
- https://www.wuv.edu/?s=谷歌搜索留痕【tg:seogoogle987】,Iwm
- https://www.oprny.com/search.php?search_query=谷歌搜索留痕【tg:seogoogle987】,vf1
- https://www2.ual.es/ProyectoLates/?s=谷歌搜索留痕【tg:seogoogle987】,1wv
- https://www.paulaschoice.hk/zh_hant/catalogsearch/result/?q=谷歌搜索留痕【tg:seogoogle987】,igX
- https://www.kelsa.co.uk/catalogsearch/result/index/?T=1686132119291&q=谷歌搜索留痕【tg:seogoogle987】,CTT
- https://www.ussalabama.com/?action=CHECK&s=谷歌搜索留痕【tg:seogoogle987】,yFl
- https://www.jusoen.com/addreng.asp?p1=谷歌搜索留痕【tg:seogoogle987】ZbS
- https://www.libros.unam.mx/catalogsearch/result/?cat=37&dir=asc&format=20&lit=20&manufacturer=3230&mode=list&order=year_edition&q=谷歌搜索留痕【tg:seogoogle987】,zgt
- https://www.wikiart.org/pt/Search/谷歌搜索留痕【tg:seogoogle987】,sUC
- https://www.yr.no/en/search?q=谷歌搜索留痕【tg:seogoogle987】,J4z
- https://www.londontheatredirect.com/search/谷歌搜索留痕【tg:seogoogle987】,hAI
- https://www.toy-people.com/?s=谷歌搜索留痕【tg:seogoogle987】,hAU
- https://www.vietnamconsulate-sf.org/?action=CHECK&s=谷歌搜索留痕【tg:seogoogle987】,rMo
- https://www.vocabulary.com/dictionary/谷歌搜索留痕【tg:seogoogle987】,oeq
- https://www.mynextmove.org/find/search?s=谷歌搜索留痕【tg:seogoogle987】,jqt
- https://www.manga-news.com/index.php/recherche/?q=谷歌搜索留痕【tg:seogoogle987】,NlE
- https://www.kissthekangaroo.com.au/index.php?route=product/search&tag=谷歌搜索留痕【tg:seogoogle987】,d4Y
- https://www.metaltix.com/?view=tours&filter=search&q=谷歌搜索留痕【tg:seogoogle987】,SUJ
- https://www.welshmountainzoo.org/shop/index.php?routeproduct/search&tag=谷歌搜索留痕【tg:seogoogle987】,vBX
- https://www.lyrics.com/lyrics/kkk3谷歌搜索留痕【tg:seogoogle987】,Rop
- https://www.vfw.org/search-results?q=谷歌搜索留痕【tg:seogoogle987】,DFI
- https://www.le-trend.com/en/search/=谷歌搜索留痕【tg:seogoogle987】,cLV
- https://www.polliwogs.com/search/谷歌搜索留痕【tg:seogoogle987】,P87
- https://www.lauben.com/en/?action=SEARCH&s=谷歌搜索留痕【tg:seogoogle987】,mZV
- https://www.xbiao.com/search/index?tpf&wd=谷歌搜索留痕【tg:seogoogle987】,JeC
- https://www.swecobelgium.be/?page=9&s=谷歌搜索留痕【tg:seogoogle987】,DTU
- https://www.teacherspayteachers.com/Browse/Price-Range/Free/Search:谷歌搜索留痕【tg:seogoogle987】,ukj
- https://www.wellbees.com/catalogsearch/result/?action=CHECK&q=谷歌搜索留痕【tg:seogoogle987】,zOB
- https://www.rea.govt.nz/search?searchterm=谷歌搜索留痕【tg:seogoogle987】,O9G
- https://www.tmtpost.com/search?q=谷歌搜索留痕【tg:seogoogle987】,vp0
- https://www.tarleton.edu/?s=谷歌搜索留痕【tg:seogoogle987】,VLy
- https://www.trockenmittel.ch/catalogsearch/result/?iC=ZM3&q=谷歌搜索留痕【tg:seogoogle987】,2Xt
- https://www.maafushidive.com?collections?vendors?q=谷歌搜索留痕【tg:seogoogle987】,E05
- https://www.resopal.de/catalogsearch/result/?action=SEARCH&q=谷歌搜索留痕【tg:seogoogle987】,kJJ
- https://www.tahiti-infos.com/search/谷歌搜索留痕【tg:seogoogle987】,Fvl
- https://www.nss.nhs.scot/search?q=谷歌搜索留痕【tg:seogoogle987】,GNy
- https://yscc1986.net/search/谷歌搜索留痕【tg:seogoogle987】gO6