- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Part of my dockerfile:
FROM node:18-alpine as installer
WORKDIR /app
ENV NODE_ENV=development
COPY package*.json .
COPY tsconfig.json .
RUN npm ci
FROM node:18-alpine as builder
WORKDIR /app
ENV NODE_ENV=development
COPY --from=installer /app/ .
COPY src/ ./src/
RUN npm run build
我的 docker-compose.yml 的一部分
version: '3.8'
services:
function-app:
container_name: function-app
restart: always
depends_on:
- mongo
build: .
environment:
- DB_HOST=mongo:27017
- DB_USERNAME=qq
- DB_PASSWORD=qq
ports:
- 1337:80
volumes:
- ./dist/:/home/site/wwwroot/
这适用于我所有的同事。
我得到了这个:
我尝试更改为 FROM --platform=linux/amd64 node:18-alpine 作为安装程序
没有效果。
我是团队中唯一运行 Apple M1 计算机的人。也许这就是问题所在?
有什么建议可能是什么问题以及如何解决它吗?
更新
我重新安装了docker。出现新错误:“功能未实现”这指向我这里:https://github.com/Azure/azure-functions-core-tools/issues/2901
该主题的摘要:目前没有针对 M1 的解决方案。
因此我们在项目中放弃了 docker(目前不是最受欢迎的团队成员)。
感谢您的所有回答!
最佳答案
在下面发布的我的原始答案中,我试图帮助您创建一个能够运行 Apple M1 arm64 架构的 Node 镜像,但问题的原因可能是另一个。
您在 Docker 文件中包含了正在使用的 installer
和 builder
镜像,但是根据您提供的错误,您似乎正在使用 Azure Functions for node docker image .
如果是这样的话,目前看来,正如您在 this 中看到的那样或this other Github问题,该镜像尚不支持arm64架构。您还可以查看 Docker Hub 中不同标签的列表来验证它。 .
您可以尝试按照this post中的建议构建自己的图像。 ,但我不知道这是否是一个可能的解决方案。
我认为使用 Apple M1 以及我之前的答案中建议的方法或类似的方法为 amd64 构建镜像应该没有任何问题;结果图像应该能够在 linux amd64 中运行而不会出现进一步的问题。唯一的问题是尝试在arm64 中运行它。
为了提供上下文,我的原始答案如下。
我的第一句话应该是,我没有机会使用Apple M1电脑,因此以下答案仅基于假设,而不是我想要的事实:请将此仅作为一般指导,背景信息,而不是真正的答案,因为我不确定它是否有效。
该错误表明您的 Functions 运行时可以正确启动。
这可能是由不同的原因引起的,并且由于使用 Apple Silicon M1 的不同芯片组架构而使用不受支持的 node
版本可能就是其中之一。
它可能没有任何效果,但您可以尝试为不同的架构显式构建图像。
Docker documentation 中很好地描述了构建多平台图像的过程。 .
该文档提供了 getting started section这表明设置构建系统需要执行的不同步骤。
基本上,作为第一步,您可能需要基于 docker container driver 创建一个新的构建器:
docker buildx create --name my-builder --driver docker-container --use
如文档中所述:
Using the docker-container driver has a couple of advantages over the basicdocker driver. Firstly, we can manually override the version of buildkit touse, meaning that we can access the latest and greatest features as soon asthey’re released, instead of waiting to upgrade to a newer version ofDocker. Additionally, we can access more complex features like multi-architecture builds and the more advanced cache exporters, which arecurrently unsupported in the default docker driver.
创建的构建器应该出现在可用构建器的列表中。您可以发出以下命令来验证它:
docker buildx ls
如上述 Docker 文档中所述,根据您的设置,可能需要安装以下内容以提供对其他平台的支持:
docker run --privileged --rm tonistiigi/binfmt --install all
请考虑阅读此related SO question .
如果一切正常,您应该能够使用目录中的以下内容构建图像:
docker buildx build --platform linux/arm64 -t your_image --load .
上述命令假设您没有使用注册表,并且图像将被存储 locally :仅当您提供单一平台目标时,它才有效。
请注意,我使用的是 linux/arm64
而不是 linux/amd64
:老实说,我对此有点困惑,但我认为您应该使用其中的平台您的应用程序应该会遇到。 This great article一般来说,来自 docker 博客提供了我读过的关于 docker 多平台构建如何工作的更好的解释之一;特别是,它为不同的 variables 提供了很好的指导。您可以使用它来使您的 Dockerfile
可跨不同平台移植。
生成的图像稍后可以在 docker-compose 中使用:
version: '3.8'
services:
function-app:
container_name: function-app
restart: always
depends_on:
- mongo
image: your_image
environment:
- DB_HOST=mongo:27017
- DB_USERNAME=qq
- DB_PASSWORD=qq
ports:
- 1337:80
volumes:
- ./dist/:/home/site/wwwroot/
当我看到你的问题时,我正在深入研究这个问题,并且“似乎”docker-compose无法按照描述构建图像:这就是我使用docker buildx
命令的原因直接地。请考虑评论this SO question以及以下 Docker Desktop documentation关于这个问题。
关于node.js - Docker,无法启动服务 : Failed to start a new language worker for runtime: node. Apple M1 有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73863438/
我一直在阅读Code Complete 2 .由于我不是以英语为母语的人,因此我需要一些时间才能理解某些陈述。我希望你描述作者在他的书中所做的这两个陈述之间的区别: You should progra
我将 TYPO3 安装从 8.6 升级到 9.5。在内容语言设置为“所有语言”的页面上,这些元素不会显示在前端。 似乎在 ContentObjectRenderer->getQueryConstrai
我和一个学生正在建立一个新的口译员家庭,我们希望以现有口译员为基准。我们很乐意下载包含 Computer Language Benchmarks Game 中使用的所有源代码的 tarball 或 z
因此,我正在尝试创建一个双语网站,只需单击一下即可将其从英语切换为葡萄牙语,反之亦然。 我收到此错误:Use of undefined constant language - assumed 'lan
我正在阅读一个比较不同编程语言的演示文稿。衡量的特征之一是“语言表现”。什么意思? 最佳答案 真正的答案:它没有任何意义,或者该演示文稿的作者当时在想什么。 也许它的意思是“执行相对于其他语言具有相同
Go talk 2009 pdf 有评论解释了他们为什么想出 go 语言: No new major systems language in a decade. 系统语言是什么意思? 它是一种应该通过
我现在正在使用 Squeak4.1 学习 SmallTalk。我使用 Squeak by Example 作为教程,在这里我反驳了一个 delema,“Morphic 是由...开发的,用于自编程语言
谁能告诉我如何编译和运行在 ZOMBIE 上编写的程序?例如,如果我编写了以下源代码线以将“hello world”打印到屏幕上,我该如何制作一个 .exe 文件。谢谢! HelloWorld is
我在看帖子Why Language is Important (Why I prefer C#)来自“Dot Net Thoughts”,文章的第一段以以下声明结尾: ...every languag
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 7年前关闭。 Improve t
我正在尝试使用 qTranslate X 制作一个基本的语言切换器,例如: FR | EN 有一个函数可以实现这一点:qtranxf_generateLanguageSelectCode('text'
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
我正在研究浏览器指纹。在应用程序的 webview 中运行的 js 将通过获取 navigator.language.substr(0,2) == navigator.languages[0].sub
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
"Page description language"、"markup language"、"Page description markup language"有什么区别和关系? 根据他们的 wiki
我正在为 IntelliJ 创建一个自定义语言插件。 我希望新语言的文件可以包含其他语言的文本片段。 我想支持的特定语言是 HTML、JS、CSS 和 SQL。 我还想支持其他自定义语言(即我要为其定
我正在用 mysql 创建一个图书数据库。一本书可以有不同的语言。并且将会有数千本书。 (而且我远不是这个领域的专家,之前只创建过小型和简单的数据库) 1) 只创建一个包含语言列的表并为其创建索引是否
我的网站使用用户可切换的三种不同语言。语言切换由 JavaScript (AngularJS) 在客户端完成。 我在我的网站上使用 reCAPTCHA 2,当用户切换网站语言时需要更改 reCAPTC
我在 Core Image Kernel Language 中有以下函数,我需要在 Metal Shading Language 中等效的东西,但是我对 destCoord 、 unpremultip
“不存在‘编译语言’或‘解释语言’之类的东西。语言实现者选择编写编译器、解释器还是两者之间的任何东西都是实现细节,与语言无关。” 上述说法是否属实? 最佳答案 是的,在最严格的解释中它是正确的。您可以
我是一名优秀的程序员,十分优秀!